Change Log
All notable changes to this project will be documented in this file.
See Conventional Commits for commit guidelines.
Note: Version bump only for package @serenity-js/core
Bug Fixes
- deps: update dependency typescript to v5.8.3 (b19c09b)
Note: Version bump only for package @serenity-js/core
Note: Version bump only for package @serenity-js/core
Bug Fixes
- deps: update dependency typescript to v5.8.2 (228c7fd)
3.31.9 (2025-02-20)
Note: Version bump only for package @serenity-js/core
3.31.8 (2025-02-04)
Bug Fixes
- deps: update dependency semver to v7.7.1 (640931b)
3.31.7 (2025-01-24)
Note: Version bump only for package @serenity-js/core
3.31.6 (2025-01-16)
Note: Version bump only for package @serenity-js/core
3.31.5 (2025-01-11)
Bug Fixes
- core: added more context to the ArtifactArchived event (9f10867)
- deps: update dependency fast-glob to v3.3.3 (93cf07e)
- deps: update dependency typescript to v5.7.3 (cd87dd8)
3.31.4 (2025-01-01)
Note: Version bump only for package @serenity-js/core
3.31.2 (2024-12-26)
Note: Version bump only for package @serenity-js/core
3.31.1 (2024-12-17)
Note: Version bump only for package @serenity-js/core
3.31.0 (2024-12-12)
Note: Version bump only for package @serenity-js/core
3.30.0 (2024-11-19)
Bug Fixes
- core: updated dependency on validate-npm-package-name (1ef87d9)
3.29.5 (2024-11-03)
Note: Version bump only for package @serenity-js/core
3.29.4 (2024-10-08)
Note: Version bump only for package @serenity-js/core
3.29.3 (2024-10-08)
Note: Version bump only for package @serenity-js/core
3.29.2 (2024-09-25)
Bug Fixes
- core: added implementation examples to Numeric API docs (5365ec4)
3.29.1 (2024-09-24)
Bug Fixes
3.29.0 (2024-09-24)
Bug Fixes
- core: improved precision of results calculated by Numeric.sum() (d82a23d), closes #2420
Features
- core: added Numeric.sum() arithmetic function (5ed15ec), closes #2420
- core: introduced Numeric.difference() (97e7f5e), closes #2420
- core: introduced Numeric.floor() and Numeric.ceiling() functions (dbe892b), closes #2420
- core: introduced Numeric.intValue(), .bigIntValue() and floatValue() meta-questions (bab710e), closes #2420
- core: introduced Numeric.max() and Numeric.min() (f310bb0), closes #2420
- core: standardised arithmetic function APIs so that they can be used to map collection items (8817ad4), closes #2420
3.28.0 (2024-09-11)
Note: Version bump only for package @serenity-js/core
3.27.0 (2024-09-06)
Bug Fixes
- core: updated npm tags to improve discoverability (432d331)
Features
- core: added support for Node 22, dropped support for Node 16 (d5dea01), closes #2518
3.26.1 (2024-09-03)
Bug Fixes
- core: updated diff to 6.0.0 (d7718e1)
3.26.0 (2024-08-27)
Features
- core: final state of the actor's notepad is included in Serenity BDD report (56c9fb8)
- core: introduced specialised events to mark actors' exit from the stage (b0b3f0c)
- core: new event ActorEntersStage and associated models (11702b6)
- core: new event ActorEntersStage is emitted upon invoking actorCalled for the first time (1498c21)
- core: new method actor.toJSON lets you inspect the actor and its abilities (ace3323)
3.25.5 (2024-08-18)
Bug Fixes
- deps: update dependency tiny-types to v1.23.0 (1c9a897)
3.25.4 (2024-08-07)
Note: Version bump only for package @serenity-js/core
3.25.3 (2024-07-25)
Note: Version bump only for package @serenity-js/core
3.25.2 (2024-07-17)
Note: Version bump only for package @serenity-js/core
3.25.1 (2024-07-10)
Bug Fixes
- core: all the API docs now link to the online Serenity/JS API documentation (f8f451d)
3.25.0 (2024-07-03)
Note: Version bump only for package @serenity-js/core
3.24.1 (2024-06-26)
Note: Version bump only for package @serenity-js/core
3.24.0 (2024-06-18)
Bug Fixes
- core: aggregated the various internal reflection functions under ValueInspector (4c9ce32), closes #2223
Features
- assertions: dynamic descriptions for assertions and expectations (3fdc7c8), closes #2223
- core: dynamic descriptions for Wait.for and Wait.until (d000f46), closes #2223
- core: initial description of a Question can now be dynamic (7c428cc), closes #2223
- core: nested properties returned by QuestionAdapters are now reported as their formatted value (35f2e3e), closes #2223
- core: notes are now reported using their actual value rather than their description (584373a), closes #2223
- core: support for dynamic descriptions for Questions (aac9a8f), closes #2223
- core: support for dynamic descriptions for Tasks and Interactions (c1516f2), closes #2223
- core: the - new tag template function to help you create dynamic descriptions of activities (98288dd), closes #2223
- core: the - tag literal function now accepts meta-questions as parameters (a7b58b6), closes #2223
3.23.2 (2024-05-24)
Note: Version bump only for package @serenity-js/core
3.23.1 (2024-05-20)
Bug Fixes
- core: allow relative Path to resolve to '.' (be527a2)
3.23.0 (2024-05-12)
Features
- core: exported isPlainObject utility function as part of /lib/io (7f2c5fd)
- core: new utility method Question.fromArray to complement Question.fromObject (4007bf1)
3.22.4 (2024-05-07)
Note: Version bump only for package @serenity-js/core
3.22.3 (2024-05-01)
Note: Version bump only for package @serenity-js/core
3.22.2 (2024-04-20)
Note: Version bump only for package @serenity-js/core
3.22.1 (2024-04-17)
Note: Version bump only for package @serenity-js/core
3.22.0 (2024-04-11)
Note: Version bump only for package @serenity-js/core
3.21.2 (2024-03-31)
Note: Version bump only for package @serenity-js/core
3.21.1 (2024-03-16)
Bug Fixes
- core: upgraded dependency on tiny-types to 1.22.0 (2c0bb2a)
3.21.0 (2024-03-04)
Bug Fixes
- playwright-test: support for reporting tags registered using the new Playwright 1.42 tags API (9d57157)
3.20.0 (2024-03-02)
Features
- core: simplified reading and writing files in CrewMembers using the FileSystem (7f0d0cc), closes #2244
3.19.0 (2024-03-01)
Note: Version bump only for package @serenity-js/core
3.18.1 (2024-02-23)
Note: Version bump only for package @serenity-js/core
3.18.0 (2024-02-17)
Bug Fixes
- deps: update dependency diff to v5.2.0 (17f5a2e)
3.17.0 (2024-02-10)
Bug Fixes
- playwright-test: fix lint issue, refactors and add integration tests to custom tags reporting (0f055c7)
3.16.2 (2024-02-05)
Note: Version bump only for package @serenity-js/core
3.16.1 (2024-02-03)
Bug Fixes
- core: build with TypeScript 5.2 (2f261ee)
3.16.0 (2024-02-01)
Bug Fixes
- core: introduced RequirementsHierarchy to centralise requirements detection logic (0a3d6f0)
- core: recognise
specs
as a potential requirements hierarchy root (d95d850)
- core: removed dependency on Moment.js (edd1d64)
- core: simplified the Timestampt validation regex and improved error messages (b453a23)
- core: support for timezones and simplified date time strings when creating Timestamps (754f8e2)
Features
- core: added Masked.valueOf() Question (e9ff5ab), closes #2165
- mocha: support for nested requirements reporting (f8e70ce)
- serenity-bdd: upgraded Serenity BDD to 4.0.44 (4e2f1e3)
3.15.1 (2024-01-19)
Note: Version bump only for package @serenity-js/core
3.15.0 (2024-01-12)
Bug Fixes
- deps: update dependency moment to v2.30.1 (42ec5c3)
Features
- core: enabled ClassLoader to instantiate StageCrewMembers using their factory functions (f98bd42), closes #1147
- core: timestamps can be represented as ISO8601-compatible strings (b19e064)
- serenity-bdd: support for Serenity BDD 4 (c15c366), closes #1147
3.14.2 (2023-12-12)
Note: Version bump only for package @serenity-js/core
3.14.1 (2023-12-10)
Bug Fixes
- core: added provenance statements (04c2d87)
- core: pinned all the direct dependencies (498b336)
3.14.0 (2023-12-02)
Features
- core: nested error cause is now added to the main error message (815c8ce), closes #1823
3.13.3 (2023-11-22)
Note: Version bump only for package @serenity-js/core
3.13.2 (2023-11-14)
Bug Fixes
- cucumber: resolve paths to "imports" as absolute file URLs (fc9aefc), closes #2060
3.13.1 (2023-11-07)
Bug Fixes
- deps: update dependency tiny-types to ^1.21.0 (d4921f9)
3.13.0 (2023-10-19)
Note: Version bump only for package @serenity-js/core
3.12.0 (2023-10-09)
Note: Version bump only for package @serenity-js/core
3.11.1 (2023-10-04)
Bug Fixes
- core: allow for QuestionAdapter<string> to proxy .replaceAll() method (f1200c1)
3.11.0 (2023-10-03)
Features
- core: inspecting a Timestamp returns a human-friendly description of its value (da26b54)
3.10.4 (2023-09-22)
Note: Version bump only for package @serenity-js/core
3.10.3 (2023-09-15)
Note: Version bump only for package @serenity-js/core
3.10.2 (2023-09-10)
Bug Fixes
- core: updated installation instruction in the README (ec3f277), closes #1915
3.10.1 (2023-09-01)
Note: Version bump only for package @serenity-js/core
3.10.0 (2023-08-23)
Features
3.9.1 (2023-08-18)
Bug Fixes
- core: support iOS window handles in CorrelationId (4e15e1a)
- deps: update dependency @paralleldrive/cuid2 to ^2.2.2 (1bec9da)
3.9.0 (2023-08-04)
Features
- core: introduced MetaQuestionAdapter (b6676fd)
3.8.0 (2023-08-01)
Bug Fixes
- serenity-bdd: corrected screenshot sort order in screenshot detail viewer (7537622), closes #1790
Features
- core: allow for easier debugging of Serenity/JS domain events using StreamReporter (108677e), closes #1790
3.7.2 (2023-07-26)
Bug Fixes
- deps: update dependency fast-glob to ^3.3.1 (0822973)
3.7.1 (2023-07-22)
Note: Version bump only for package @serenity-js/core
3.7.0 (2023-07-20)
Bug Fixes
- core: support for proxying String.replace in QuestionAdapter (251113d)
3.6.1 (2023-07-11)
Bug Fixes
- playwright-test: ensure activity instantiation location is correct in component tests (87d59ef), closes #1784
3.6.0 (2023-07-11)
Bug Fixes
- deps: update dependency tiny-types to ^1.20.0 (6d7bf43)
3.5.0 (2023-07-02)
Bug Fixes
- core: code clean-up: use type-only TypeScript imports where possible (aa49150)
Features
- core: actors can tell the current time (c52959a)
3.4.2 (2023-06-30)
Bug Fixes
- deps: update dependency fast-glob to ^3.3.0 (bb00f5e)
3.4.1 (2023-06-23)
Note: Version bump only for package @serenity-js/core
3.4.0 (2023-06-10)
Features
- core: compile Serenity/JS against ES2021 (6b31184)
3.3.1 (2023-06-08)
Bug Fixes
- deps: update dependency @paralleldrive/cuid2 to ^2.2.1 (eb37932)
3.3.0 (2023-06-01)
Bug Fixes
- core: ability to ScheduleWork preserves stack traces for better reporting (c2ce5f7), closes #1717
Features
- core: enabled extending default behaviour of actor.perform and actor.answer APIs (01bb213), closes #1717
3.2.1 (2023-05-15)
Note: Version bump only for package @serenity-js/core
3.2.0 (2023-05-05)
Bug Fixes
- core: use "types" instead of "typings" in package.json files (b83d922), closes #1682
Features
- core: introduced support for Node.js 20, dropped support for Node.js 14 (491fef8), closes #1678
- core: new factory method to create Path.fromURI (baed8c4)
3.1.6 (2023-04-18)
Bug Fixes
- webdriverio: upgraded to TypeScript 5 and WebdriverIO 7.31.1 (15b1ba7), closes #1558 #1651
3.1.5 (2023-04-18)
Bug Fixes
3.1.3 (2023-04-14)
Note: Version bump only for package @serenity-js/core
3.1.2 (2023-04-07)
Note: Version bump only for package @serenity-js/core
3.1.1 (2023-04-05)
Bug Fixes
- core: ensure Wait.for(..) is not terminated prematurely by interactionTimeout (f1a94e2), closes #1604
3.1.0 (2023-04-02)
Bug Fixes
- core: replaced dependency on depracated cuid with cuid2 (0417f1c)
3.0.1 (2023-03-25)
Note: Version bump only for package @serenity-js/core
3.0.0 (2023-03-23)
Note: Version bump only for package @serenity-js/core
Bug Fixes
- core: re-implemented the interaction to Debug so that it works in JetBrains IDEs (14737f9), closes #1520
- core: removed deprecated API Cast.whereEveryoneCan (7f2f5b9), closes #1403
- core: removed deprecated API List.get (6308686), closes #1403
- core: removed deprecated ContextTag (d09a688), closes #1403
- deps: update dependency graceful-fs to ^4.2.11 (3dc2d0b)
Bug Fixes
- core: moved time-related code to a common package (f29fedc), closes #1522
- core: support for NPM 9 (0493474)
- deps: update dependency tiny-types to ^1.19.1 (ce335eb)
Features
- core: introduced a new ability ScheduleWork to enable #1083 and #1522 (b275d18)
- core: max timeout of Wait.until can now be configured globally (8dd6895), closes #1083
Bug Fixes
- core: introduced Cast.where factory method to make it easier to generate custom casts of actors (26637f1), closes #1523
Bug Fixes
- core: allow for multiple events to be announced using a single call to Stage (2bcae80)
- core: event TestRunFinished now incidates the Outcome of the test suite (a941056), closes #1495
- mocha: default to using file name as feature name when describe blocks are absent (1ca81ef), closes #1495
- playwright-test: default to using file name as feature name when describe blocks are absent (1295b04), closes #1495
Bug Fixes
- core: corrected issue in asyncMap that led lists of lists to be flat-mapped not mapped (d7a6f1d)
- core: easier configuration and automatic colour support detection for AnsiDiffFormatter (637ed44), closes #1486
- core: further improvements to how the expected vs received values are rendered in VS Code (e2101d0), closes #1486
- core: improved support for Node 14 (f828b45)
- core: introduced ExpectationDetails to provide more accurate info re failed expectations (02b8f33), closes #1102
- core: removed AssertionReport and AssertionReportDiffer as they're no longer needed (a968ac5), closes #1480
- core: removed the legacy Error (de-)serialisation mechanism (7ea2b10)
- core: typeOf now correctly recognises Proxy objects (3ca68a3)
Features
- assertions: diffs included in RuntimeErrors are now colour-coded (f88efb4), closes #1486
- core: assertion and synchronisation errors include location of the activity that threw them (f06f378), closes #1102
- core: assertion errors include precise information about unmet expectations and improved diffs (1eb09b1), closes #1102
- core: better assertion errors reporting in Visual Studio Code (3b94b7d), closes #1486
- core: error factory is now configurable, which allows for the diffs to include colours (dac293d), closes #1486
- core: new ability to RaiseErrors (4617d39), closes #1102
- core: overridable abilities (03966cc)
Note: Version bump only for package @serenity-js/core
Bug Fixes
- core: improved Duration to ensure it can't be instantiated with an invalid parameter (9d89014)
- core: improved error message shown when an actor doesn't have a required ability (753b036)
- core: simplified AsyncOperation events (ac1a88f)
- core: simplified internal AsyncOperation events to separate service name from task description (0162d28)
Features
- playwright-test: custom actors can now be defined in playwright config file (117da34)
Bug Fixes
- assertions: improved AssertionError messages (958ab7f)
Bug Fixes
- deps: update core dependencies to v5 (7c44d5a)
Bug Fixes
- core: reverted the change to List.get and marked method as deprecated, to be removed in 3.0 (5ac8c69), closes #1403
Bug Fixes
- core: renamed List.get(index) to List.nth(index) to make the API declarative (094e21c)
BREAKING CHANGES
- core: List.get(index) replaced by List.nth(index); this affects classes inheriting from List, such as
PageElements
Bug Fixes
- core: interaction to Wait should fail after the timeout (5403394), closes #1339
Bug Fixes
- core: allow proxying
location
and description
fields by QuestionAdapter
(6761685), closes #1344
- deps: update dependency fast-glob to ^3.2.12 (94854a1)
Bug Fixes
- core: invocation location detection works for built-in interactions (2ef0688)
Bug Fixes
- core: corrected file system location reporting for built-in Interactions (ce9acfc)
- core: improved invocation location detection on Windows (#1332) (43dd9b9)
Bug Fixes
- core: removed deprecated function
formatted
(64d7f21), closes #1260
Bug Fixes
- serenity-bdd: correct detection of invocation location for internal code (c76ec76)
Bug Fixes
- core: activity is now able to detect invocation location on Node 14 (41f4776), closes #1240
- core: enabled support for synthetic default imports and ES module interop (3e63d07), closes #1240
- core: improved implementation of EventQueue to better support parallel scenarios (025e4fd), closes #1240
- core: simplified SceneFinishes event (9ad947a), closes #1240
- playwright-test: support for Playwright Test Babel loader (f9a5412), closes #1240
- playwright-test: wait for Photographer to finish taking screenshots before dismissing actors (b0c5adb), closes #1240
Features
- console-reporter: improved support for tests executed in parallel (01264ce), closes #1240
- core: serenity/JS stage crew members can now be configured using
string
(786cdad), closes #1240 #594
- playwright-test: improved Playwright Test reports (6c6b537), closes #1240
- serenity-bdd: support for configuring SerenityBDDReporter using a ClassDescription string (968e349), closes #594
Bug Fixes
- deps: update dependency diff to ^5.1.0 (f21af46)
- deps: update dependency moment to ^2.29.4 (7b0fd6e)
Note: Version bump only for package @serenity-js/core
Bug Fixes
- core: extracted common TypeScript configuration (0108370)
- core: refactored the interaction to Wait.until to improve its reliability (970ea39), closes #1255
- deps: updated TinyTypes to 1.19.0 (f6d53e4)
Features
- core: support for registering custom RuntimeErrors with ErrorSerialiser (feed78c)
Bug Fixes
- core: improved how the interaction to Log reports names of the logged values (c4cc60d)
Features
- core: new interaction to Debug.values(..) and Debug.setBreakpoint() (ef54324)
Bug Fixes
Bug Fixes
- core: ensure all async operations complete before attempting to dismiss the actors (635cd9a), closes #1236
- core: further improvements to stage/actor synchronisation (1e2e6fb)
Bug Fixes
- core: corrected Wait so that polling stops when the timeout expires (60677e7)
Features
- core: interaction to Wait stops upon errors (56ff3eb), closes #1035
- core: interactions to Wait.for and Wait.until are now browser-independent (d115142), closes #1035 #1236
- core: minimum timeout and polling interval guards for Wait (fd53d81), closes #1035
- web: introduced PagesContext and implemented PlaywrightPage (0045a72), closes #1236
Bug Fixes
Features
- core: Question.fromObject() generates questions from plain objects with nested Answerables (3113f20), closes #1219
Bug Fixes
Features
- core: further improvements to Notepad (c0d4c0a), closes #1220
Bug Fixes
- core: corrected QuestionAdapter to improve support for
any
type (9bed585)
Features
- core: Screenplay-style Dictionary<T> to help resolve objects with nested Questions (6a66778), closes #1219
- core: type-safe Notepad and improved notes() DSL with support for QuestionAdapters (04c5397), closes #1220
- rest: all HTTP requests accept DynamicRecord<AxiosRequestConfig> (c28b47c), closes #463
Features
- core: get the number of notes stored in the notepad with Notepad#size() (a5c00b9)
- core: improved support for recording and reading notes (6afc610), closes #817
BREAKING CHANGES
- core: This implementation replaces the previous implementations of TakeNote, TakeNotes
and Note, so tests using those interfaces will need to be updated.
Bug Fixes
- web: replaced legacy PromiseLike return types with native Promise types (436b3cb)
Bug Fixes
- web: auto-generated descriptions of nested PageElements are easier to read (5a51d91)
Bug Fixes
- core: updated dependency on error-stack-parser (ea50285)
Features
- web: isVisible() works with Web elements in Shadow DOM (cf84fb0), closes #1085
Bug Fixes
- core: ensure Question.about doesn't expose internal interfaces (4bfb6bc), closes #1106
Bug Fixes
- core: removed deprecated interface DressingRoom; please use Cast instead (d68b44b)
- core: removed deprecated interface WithStage (45d1c2b)
- core: removed deprecated task to See.if (dd5e2f5)
Features
- assertions: isPresent works with any Optional (cea75dc), closes #1103
- core:
f
and d
question description formatters (c9f3fad)
- core: replaced
Adapter
with QuestionAdapter
and introduced Optional
(8d84ad3), closes #1103
- core: support for Optional chaining, expectation isPresent, refactored Expectations (1841ee5), closes #1099 #1099 #1103
Bug Fixes
- core: screenplay Adapters will now correctly proxy calls to function-specific object keys (ad6f1e6)
Bug Fixes
- core: you can now retrieve the .length property of an Array wrapped in an Adapter<Array> (c36e210)
Bug Fixes
- core: refactored Mappable so that it's easier to implement filters (176e0cd), closes #1074
- core: removed interface Reducible since it's not used any more (1e9f23b)
- deps: updated tiny-types to 1.17.0 (3187051)
- web: corrected synchronisation in Web questions and interactions (c3a0ad1)
Features
- core: forEach for List and PageElements (4592fb7), closes #823
- core: List supports custom collectors (cd3f2bc)
- core: new implementation of List.where filters (45b3c80), closes #1074
- core: support for Screenplay-style collection filters and mapping (List.where & .eachMappedTo) (3d3c02e), closes #1074
- web: re-introduced PageElements.where DSL and universal By selectors (39fe0a1), closes #1081
Bug Fixes
- core:
formatted
can be configured to produce single- or multi-line descriptions (21145a3)
- core:
inspected
produces a better description of functions used as parameters (15535c6)
- core: 3.0 RC (469d54e), closes #805
- core: answerProxy renamed to ProxyAnswer to better reflect its purpose (a98fe41)
- core: corrected type defs of Question.as (681ce22)
- core: exported createProxyAnswer to make it easier to use (5471989)
- core: removed Loop as it will be replaced (0b63d27)
- core: removed Property as it will be replaced by new Question (fd7fa10)
- core: removed Transform and mapping functions as they'll be replaced with new Question (506eaea)
- core: renamed "Model" type to "Adapter" to better reflect its purpose (b4ea7a1), closes #805
- cucumber: support for recognising non-Serenity AssertionErrors in older version of Cucumber (31e9e99)
- web: wordsmithing of interface names (5a1e76a)
Features
- core: question.about creates a proxy around the answer to simplify the API (25e0841)
- core: question.about produces "props" that proxy the methods of the underlying model (f771872)
- web: Page.url() and Page.title() replace Website.url() and Website.title() (49fe009), closes #805
- web: removed Target in favour of PageElement (69496c4), closes #805
- web: support for working with cookies (39cde6d), closes #805
BREAKING CHANGES
- core: Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.