Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@serenity-js/core

serenity-js70.7kApache-2.03.31.15TypeScript support: included

The core Serenity/JS framework, providing the Screenplay Pattern interfaces, as well as the test reporting and integration infrastructure

automation, integration, serenity, serenity-js, screenplay, screenplay-pattern, bdd, tdd, test, testing

readme

Serenity/JS

NPM Version Downloads FOSSA Status CodeFactor Contributors GitHub stars

Build Status Coverage Status Known Vulnerabilities Libraries.io dependency status for latest release, scoped npm package semantic-release

Serenity/JS on GitHub Serenity/JS on StackOverflow Contribute with Gitpod

Follow Serenity/JS on LinkedIn Watch Serenity/JS on YouTube Join Serenity/JS Community Chat Support Serenity/JS on GitHub

Serenity/JS is an innovative framework designed to make acceptance and regression testing of complex software systems faster, more collaborative and easier to scale.

To get started, check out the comprehensive Serenity/JS Handbook, API documentation, and Serenity/JS project templates on GitHub.

If you have any questions or just want to say hello, join the Serenity/JS Community Chat.

Stay up to date

New tutorials and videos are coming soon, follow Serenity/JS on LinkedIn and subscribe to Serenity/JS YouTube channel to get notified when they're available!

Your feedback matters!

Do you find Serenity/JS useful? Give it a ⭐ star on GitHub!

GitHub stars

Found a bug? Need a feature? Raise an issue or submit a pull request.

Have feedback? Let me know on LinkedIn or leave a comment in Serenity/JS discussions on GitHub

If you'd like to chat with fellow users of Serenity/JS, join us on Serenity/JS Community Chat.

Support Serenity/JS

Serenity/JS is a free open-source framework, so we rely on our wonderful GitHub sponsors to keep the lights on.

If you appreciate all the effort that goes into making sophisticated tools easy to work with, please support our work and become a Serenity/JS GitHub Sponsor today!

GitHub Sponsors

For corporate sponsorship or commercial support, please contact Jan Molak.

License

The Serenity/JS code base is licensed under the Apache-2.0 license, while its documentation and the Serenity/JS Handbook are licensed under the Creative Commons BY-NC-SA 4.0 International. Learn more.

FOSSA Status


- Copyright © 2016- Jan Molak and the Serenity Team


Serenity/JS is available as part of your Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

3.31.15 (2025-05-06)

Note: Version bump only for package @serenity-js/core

3.31.14 (2025-04-28)

Bug Fixes

  • deps: update dependency typescript to v5.8.3 (b19c09b)

3.31.13 (2025-03-20)

Note: Version bump only for package @serenity-js/core

3.31.12 (2025-03-12)

Note: Version bump only for package @serenity-js/core

3.31.10 (2025-03-05)

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

3.0.0-rc.45 (2023-03-22)

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)

3.0.0-rc.44 (2023-03-19)

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

3.0.0-rc.43 (2023-03-10)

Bug Fixes

  • core: introduced Cast.where factory method to make it easier to generate custom casts of actors (26637f1), closes #1523

3.0.0-rc.42 (2023-02-12)

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

3.0.0-rc.41 (2023-02-07)

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)

3.0.0-rc.40 (2023-01-06)

Note: Version bump only for package @serenity-js/core

3.0.0-rc.39 (2023-01-05)

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)

3.0.0-rc.38 (2022-12-28)

Bug Fixes

  • assertions: improved AssertionError messages (958ab7f)

3.0.0-rc.37 (2022-12-18)

Bug Fixes

  • deps: update core dependencies to v5 (7c44d5a)

3.0.0-rc.36 (2022-11-28)

Bug Fixes

  • core: reverted the change to List.get and marked method as deprecated, to be removed in 3.0 (5ac8c69), closes #1403

3.0.0-rc.35 (2022-11-25)

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

3.0.0-rc.34 (2022-11-21)

Bug Fixes

  • core: interaction to Wait should fail after the timeout (5403394), closes #1339

3.0.0-rc.33 (2022-11-07)

Bug Fixes

  • core: allow proxying location and description fields by QuestionAdapter (6761685), closes #1344
  • deps: update dependency fast-glob to ^3.2.12 (94854a1)

3.0.0-rc.32 (2022-10-12)

Bug Fixes

  • core: invocation location detection works for built-in interactions (2ef0688)

3.0.0-rc.31 (2022-10-07)

Bug Fixes

  • core: corrected file system location reporting for built-in Interactions (ce9acfc)
  • core: improved invocation location detection on Windows (#1332) (43dd9b9)

3.0.0-rc.30 (2022-10-05)

Bug Fixes

  • core: removed deprecated function formatted (64d7f21), closes #1260

3.0.0-rc.29 (2022-10-01)

Bug Fixes

  • serenity-bdd: correct detection of invocation location for internal code (c76ec76)

3.0.0-rc.28 (2022-09-30)

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

3.0.0-rc.27 (2022-08-26)

Bug Fixes

  • deps: update dependency diff to ^5.1.0 (f21af46)
  • deps: update dependency moment to ^2.29.4 (7b0fd6e)

3.0.0-rc.26 (2022-08-15)

Note: Version bump only for package @serenity-js/core

3.0.0-rc.25 (2022-08-15)

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)

3.0.0-rc.24 (2022-07-23)

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)

3.0.0-rc.23 (2022-07-19)

Bug Fixes

3.0.0-rc.22 (2022-07-15)

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)

3.0.0-rc.21 (2022-07-11)

3.0.0-rc.20 (2022-07-11)

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

3.0.0-rc.19 (2022-06-11)

Bug Fixes

Features

  • core: Question.fromObject() generates questions from plain objects with nested Answerables (3113f20), closes #1219

3.0.0-rc.18 (2022-06-06)

Bug Fixes

Features

  • core: further improvements to Notepad (c0d4c0a), closes #1220

3.0.0-rc.17 (2022-06-02)

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

3.0.0-rc.16 (2022-04-15)

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.

3.0.0-rc.15 (2022-04-10)

Bug Fixes

  • web: replaced legacy PromiseLike return types with native Promise types (436b3cb)

3.0.0-rc.14 (2022-03-28)

Bug Fixes

  • web: auto-generated descriptions of nested PageElements are easier to read (5a51d91)

3.0.0-rc.13 (2022-03-02)

3.0.0-rc.12 (2022-02-23)

3.0.0-rc.11 (2022-02-13)

Bug Fixes

  • core: updated dependency on error-stack-parser (ea50285)

3.0.0-rc.10 (2022-02-03)

3.0.0-rc.9 (2022-02-01)

Features

  • web: isVisible() works with Web elements in Shadow DOM (cf84fb0), closes #1085

3.0.0-rc.8 (2022-01-28)

Bug Fixes

  • core: ensure Question.about doesn't expose internal interfaces (4bfb6bc), closes #1106

3.0.0-rc.7 (2022-01-28)

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

3.0.0-rc.6 (2022-01-10)

3.0.0-rc.5 (2022-01-07)

Bug Fixes

  • core: screenplay Adapters will now correctly proxy calls to function-specific object keys (ad6f1e6)

3.0.0-rc.4 (2021-12-30)

Bug Fixes

  • core: you can now retrieve the .length property of an Array wrapped in an Adapter<Array> (c36e210)

3.0.0-rc.3 (2021-12-29)

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

3.0.0-rc.1 (2021-12-09)

3.0.0-rc.0 (2021-12-08)

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.