Skip to content

Latest commit

 

History

History
1739 lines (802 loc) · 118 KB

CHANGELOG.md

File metadata and controls

1739 lines (802 loc) · 118 KB

Change Log

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

3.23.2 (2024-05-24)

Bug Fixes

  • deps: update playwright dependencies to v1.44.1 (8a602c9)

3.23.1 (2024-05-20)

Bug Fixes

  • core: allow relative Path to resolve to '.' (be527a2)
  • deps: update dependency axios to v1.7.0 (7baf7c3)
  • deps: update dependency sass to v1.77.2 (c3ad4c0)
  • rest: upgraded Axios to 1.7.1 (83566b7)

3.23.0 (2024-05-12)

Bug Fixes

  • deps: update dependency sass to v1.77.1 (a9d7258)

Features

  • core: exported isPlainObject utility function as part of /lib/io (7f2c5fd)
  • core: new utility method Question.fromArray to complement Question.fromObject (4007bf1)
  • playwright: standardised ExecuteScript argument transmission across WebdriverIO and Playwright (adfc171)
  • protractor: standardised ExecuteScript argument transmission across all web integration tools (1a08f47)
  • webdriverio: support for injecting scripts parameterised with complex data structures (e920e67)
  • web: scripts injected into the browser accept data structures containing PageElement objects (2fbddf5)

3.22.4 (2024-05-07)

Bug Fixes

  • deps: update dependency sass to v1.77.0 (a43874f)
  • deps: update playwright dependencies to v1.44.0 (ae659d6)

3.22.3 (2024-05-01)

Bug Fixes

  • deps: update dependency cytoscape to v3.29.2 (de21b6c)
  • deps: update dependency lru-cache to v10.2.2 (35b9e75)
  • deps: update dependency sass to v1.76.0 (71573d5)
  • playwright: ensure ExecuteScript runs in the context of the currently active iframe (3592ca0)
  • webdriverio: support switching to parent frame when using Appium (1faba64), closes appium/appium#14882

3.22.2 (2024-04-20)

Note: Version bump only for package serenity-js-monorepo

3.22.1 (2024-04-17)

Bug Fixes

  • deps: update dependency sass to v1.75.0 (7a7136f)
  • deps: update playwright dependencies to v1.43.1 (fbbb2d4)

3.22.0 (2024-04-11)

Bug Fixes

  • cucumber: support for Cucumber 10.4.0 (3aff921)
  • cucumber: updated cucumber/messages to 24.1.0 (1ea098b)
  • deps: update dependency sass to v1.74.1 (a9b73e1)
  • deps: update playwright dependencies to v1.43.0 (f9a2f9d)
  • playwright-test: support for Playwright Test 1.43.0 (0162b6e)

Features

  • serenity-bdd: support for Serenity BDD 4.1.6 (48cbaf6)

3.21.2 (2024-03-31)

Bug Fixes

  • deps: update dependency agent-base to v7.1.1 (f4d639f)

3.21.1 (2024-03-16)

Bug Fixes

  • core: upgraded dependency on tiny-types to 1.22.0 (2c0bb2a)
  • web: documented By (69573aa)

3.21.0 (2024-03-04)

Bug Fixes

  • playwright-test: support for reporting tags registered using the new Playwright 1.42 tags API (9d57157)

Features

  • jasmine: support for custom tags (47f93d8)
  • mocha: support for custom tags (b86f2bb)

3.20.0 (2024-03-02)

Bug Fixes

  • deps: update playwright dependencies to v1.42.0 (0058448)
  • deps: update playwright dependencies to v1.42.1 (dc20ed5)
  • serenity-bdd: fixed feature tag links for nested spec structures (7f596e5), closes #2222

Features

  • core: simplified reading and writing files in CrewMembers using the FileSystem (7f0d0cc), closes #2244
  • rest: createAxios function instantiates axios with HTTP proxy support (c453678)

3.19.0 (2024-03-01)

Bug Fixes

  • console-reporter: fix comments (e8b21dd)

Features

  • console-reporter: global exception handling v1 (cf117f1)
  • console-reporter: revert to only global error handling (a375788)
  • console-reporter: test with reporter developement (85e2bf1)

3.18.1 (2024-02-23)

Bug Fixes

  • webdriverio: removed workaround for webdriverio/webdriverio#12251 as it's no longer needed (42da400)

3.18.0 (2024-02-17)

Bug Fixes

  • deps: update dependency diff to v5.2.0 (17f5a2e)
  • deps: update dependency http-proxy-agent to v7.0.2 (cd46c66)
  • deps: update dependency https-proxy-agent to v7.0.4 (a9f02f6)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.16 (0563d11)

Features

  • web: actors can now check if an HTML element attribute is present (3ce115a)

3.17.0 (2024-02-10)

Bug Fixes

  • deps: update dependency typedoc to v0.25.8 (9b4198d)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.15 (1c2e7b6)
  • playwright-test: fix lint issue, refactors and add integration tests to custom tags reporting (0f055c7)
  • serenity-bdd: removed dependency on https-proxy-agent as it's no longer required (acad172)

Features

  • playwright-test: announce tags automatically if present on the test title (00b9ef8)

3.16.2 (2024-02-05)

Bug Fixes

  • serenity-bdd: upgraded Serenity BDD to 4.0.48 (f99b9cb)

3.16.1 (2024-02-03)

Bug Fixes

  • core: build with TypeScript 5.2 (2f261ee)
  • deps: update playwright dependencies to v1.41.2 (0975517)

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)
  • cucumber: ensure Cucumber adapter emits events with absolute file paths (f93d9cc)
  • cucumber: support for Cucumber 10.3.1 (8f41a03)
  • deps: update dependency lru-cache to v10.2.0 (a580d1e)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.13 (92c8652)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.14 (fdb2616)
  • deps: update playwright dependencies to v1.41.1 (a1a39ee)
  • serenity-bdd: upgraded Serenity BDD CLI to 4.0.46 (218c08f)

Features

  • core: added Masked.valueOf() Question (e9ff5ab), closes #2165
  • cucumber: support for nested requirements reporting (40f8842)
  • cucumber: support for nested requirements reporting (2d0b885)
  • jasmine: support for nested requirements reporting (137fef7)
  • jasmine: support for using specDir to indicate the requirements hierarchy root (585cb81)
  • mocha: support for nested requirements reporting (f8e70ce)
  • playwright-test: improved requirements reporting (3b99112)
  • playwright-test: support for nested requirements reporting (37ef679)
  • serenity-bdd: upgraded Serenity BDD to 4.0.44 (4e2f1e3)

3.15.1 (2024-01-19)

Bug Fixes

  • deps: update dependency typedoc-plugin-mdn-links to v3.1.12 (be9f27c)
  • deps: update playwright dependencies to v1.41.0 (bb2dc99)

3.15.0 (2024-01-12)

Bug Fixes

  • cucumber: upgraded Cucumber to 10.2.1 (2665c4a)
  • deps: update dependency @giscus/react to v2.4.0 (30681d5)
  • deps: update dependency moment to v2.30.1 (42ec5c3)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.8 (7a559d0)
  • deps: update dependency typedoc-plugin-mdn-links to v3.1.9 (f3d660b)
  • deps: update website dependencies (a319ffc)
  • deps: update website dependencies (ee12098)
  • serenity-bdd: upgraded Serenity BDD CLI to 4.0.43 (e1d22e9), closes #1147

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: auto-detect requirements hierarchy root directory (e2011b0), closes #1147
  • serenity-bdd: support for Serenity BDD 4 (c15c366), closes #1147
  • serenity-bdd: support for Serenity BDD 4 (0760417)
  • serenity-bdd: support for Serenity BDD CLI v4.0.40 (271068e), closes #1147
  • serenity-bdd: support for Serenity BDD v4 CLI (6988248), closes #1147 #2042

3.14.2 (2023-12-12)

Bug Fixes

  • playwright-test: fixed switching between multiple pages (375f3aa)
  • playwright: ignore taking the screenshot if the page is already closed (fdedeb8)

3.14.1 (2023-12-10)

Bug Fixes

  • core: added provenance statements (04c2d87)
  • core: pinned all the direct dependencies (498b336)
  • protractor: removed direct dependency on selenium-webdriver 3.6.0 (33cbd16), closes #2095

3.14.0 (2023-12-02)

Bug Fixes

  • deps: update dependency lru-cache to ^10.1.0 (05700c1)
  • deps: update playwright dependencies to ^1.40.1 (da2e7ba)
  • playwright-test: corrected proxy protocol detection and configuration (090b322)
  • web: question about Attribute is now generic and specifies native element type (c2b7663)
  • web: removed duplicate quotes in the error message (4ee1c10)
  • web: replaced dot in error message by a comma (d78551e)

Features

  • core: nested error cause is now added to the main error message (815c8ce), closes #1823
  • cucumber: support for ESNext modules (ba1f225), closes #2097
  • web: question about ComputedStyle retrieves computed style property (219f9b9), closes #1633

3.13.3 (2023-11-22)

Bug Fixes

3.13.2 (2023-11-14)

Bug Fixes

  • cucumber: resolve paths to "imports" as absolute file URLs (fc9aefc), closes #2060
  • deps: update dependency lru-cache to ^10.0.2 (b46f93c)

3.13.1 (2023-11-07)

Bug Fixes

  • deps: update dependency tiny-types to ^1.21.0 (d4921f9)

3.13.0 (2023-10-19)

Bug Fixes

  • cucumber: updated Cucumber Messages to v22 (b305860)
  • deps: update playwright dependencies to ^1.39.0 (32af6b0)

Features

  • cucumber: support for Cucumber 10 (adb3ee5)

3.12.0 (2023-10-09)

Bug Fixes

  • deps: update dependency typedoc to ^0.25.2 (95dfd3d)

Features

  • jasmine: support for Jasmine 5 (ee80215), closes #1088 #913
  • jasmine: support for Jasmine 5 (9b34e1e)
  • protractor: support for Jasmine 5 (f638532)
  • webdriverio: support for Jasmine 5 (881196f)

3.11.1 (2023-10-04)

Bug Fixes

  • core: allow for QuestionAdapter<string> to proxy .replaceAll() method (f1200c1)
  • deps: update website dependencies (06041e9)

3.11.0 (2023-10-03)

Features

  • assertions: isBefore and isAfter accept Timestamp as well as Date objects (55e13d0)
  • core: inspecting a Timestamp returns a human-friendly description of its value (da26b54)
  • playwright-test: enabled the ability to CallAnApi for all default actors (436cde5), closes #1876
  • playwright-test: explicit proxy config will override env variables for REST interaction (1c277d6), closes #1949
  • rest: automatic proxy server configuration for CallAnApi (27a1630), closes #1949
  • serenity-bdd: serenity-bdd downloader will now automatically detect proxy server configuration (c221210), closes #1949
  • web: ability to CallAnApi is now available by default (dfaf8e4), closes #1876

3.10.4 (2023-09-22)

Bug Fixes

  • deps: update playwright dependencies to ^1.38.1 (0072ddb)

3.10.3 (2023-09-15)

Bug Fixes

  • deps: update playwright dependencies to ^1.38.0 (0b8074b)
  • playwright-test: simplified and documented implementing custom Playwright Test fixtures (61fc2bc), closes microsoft/playwright#24146
  • rest: correctly resolve relative paths in REST requests (1bdf3eb)
  • rest: improved error messages and error handling for failed requests (e6eb0c3), closes #1876
  • webdriverio: updated WebdriverIO to 8.16.7 and switched to its new global types (ecd96b2)

3.10.2 (2023-09-10)

Bug Fixes

  • core: updated installation instruction in the README (ec3f277), closes #1915
  • cucumber: removed publishQuiet config option as it's been removed from Cucumber (5a880ce)
  • deps: update dependency https-proxy-agent to ^7.0.2 (dbbd6a9)

3.10.1 (2023-09-01)

Bug Fixes

  • core: use module: es2020 instead of Node16 to avoid issue nrwl/nx#18801 (935e655)
  • deps: update dependency which to v4 (592c3e1)
  • deps: update website dependencies (04b33b5)
  • webdriverio: use Node16 module loader (105be09)

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)
  • deps: update playwright dependencies to ^1.37.1 (3a13bba)

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
  • webdriverio: updated WebdriverIO to 8.13 (b8916df)

Features

  • core: allow for easier debugging of Serenity/JS domain events using StreamReporter (108677e), closes #1790
  • webdriverio: support for WebdriverIO 8.14 (27c5cec)

3.7.2 (2023-07-26)

Bug Fixes

3.7.1 (2023-07-22)

Bug Fixes

  • serenity-bdd: corrected downloading Serenity BDD jar using HTTP Proxy Agent (48f79b9), closes #1795

3.7.0 (2023-07-20)

Bug Fixes

  • core: support for proxying String.replace in QuestionAdapter (251113d)
  • deps: update playwright dependencies to ^1.36.1 (b86289b)

Features

  • playwright: support for parentElement.closestTo(childElement) API (cee2c48), closes #1784
  • protractor: support for parentElement.closestTo(childElement) API (ec21e18)
  • webdriverio: support for parentElement.closestTo(childElement) API (ee1b3c4)
  • web: new PageElement Query Language API - parentElement.closestTo(childElement) (7d48fd8)

3.6.1 (2023-07-11)

Bug Fixes

  • deps: update playwright dependencies to ^1.36.0 (8b60383)
  • 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 https-proxy-agent to ^7.0.1 (f49b293)
  • deps: update dependency https-proxy-agent to ^7.0.1 (9ea4610)
  • deps: update dependency tiny-types to ^1.20.0 (6d7bf43)

Features

  • playwright-test: enable BrowseTheWebWithPlaywright to reuse an existing page instance (5c2deb1), closes #1784
  • playwright-test: introducing Component Testing with Serenity/JS and Playwright Test (7b3c6c8), closes #1784
  • web: selectors are comparable and serialisable to JSON (b285389), closes #1784
  • web: you can now use Serenity/JS Screenplay Pattern APIs for UI component testing (3c9aa4b), closes #1784

3.5.0 (2023-07-02)

Bug Fixes

  • core: code clean-up: use type-only TypeScript imports where possible (aa49150)
  • deps: update dependency @giscus/react to v2.3.0 (9146955)

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)
  • playwright-test: preserve Playwright Test-specific reporting when overriding actors (8bf0bbb)

3.4.1 (2023-06-23)

Bug Fixes

  • deps: update playwright dependencies to ^1.35.1 (9124e2e)

3.4.0 (2023-06-10)

Bug Fixes

  • deps: update playwright dependencies to ^1.35.0 (fb4359f)
  • webdriverio: support for WebdriverIO 8.11 APIs (cebbeec), closes #1739

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 (e01b642)
  • deps: update dependency https-proxy-agent to v7 (243e7de)
  • deps: update dependency typedoc to ^0.24.8 (4170d13)

3.3.0 (2023-06-01)

Bug Fixes

  • core: ability to ScheduleWork preserves stack traces for better reporting (c2ce5f7), closes #1717
  • deps: update website dependencies to v2.4.1 (6e4d17b)
  • playwright-test: corrected synchronisation of the platform fixture (7156f84), closes #1717
  • playwright: support for Playwright 1.34.0 (5d591c7)
  • playwright: updated Playwright Core to 1.34.0 (c5aa042)
  • playwright: updated Playwright to 1.34.2 (c944031)
  • playwright: upgraded to Playwright 1.34.3 (0ded19e)
  • protractor: updated dependency on @types/selenium-webdriver (a7a68ff)

Features

  • core: enabled extending default behaviour of actor.perform and actor.answer APIs (01bb213), closes #1717
  • playwright-test: improved integration with Playwright Test (45b324f), closes #1717
  • playwright-test: much more detailed Playwright Test reports (5980a1e), closes #1717
  • playwright: support Playwright auto-waiting (8f1750f), closes #1717

3.2.1 (2023-05-15)

Bug Fixes

  • cucumber: updated Cucumber to 9.1.2 (e202cf8), closes #1690
  • deps: update dependency typedoc to ^0.24.7 (d821a13)
  • deps: update serenity bdd dependencies (4f39f2d)

3.2.0 (2023-05-05)

Bug Fixes

  • core: use "types" instead of "typings" in package.json files (b83d922), closes #1682
  • deps: update playwright dependencies to ^1.33.0 (e1cebc4)
  • webdriverio: aligned CJS and ESM exports to offer a consistent developer experience (3f9f50a)
  • webdriverio: support for WebdriverIO 8.10.0 (bf35d6c)

Features

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.4 (2023-04-16)

Bug Fixes

  • serenity-bdd: escape HTML tags in scenaio name and title (c5ca1bf), closes #1630

3.1.3 (2023-04-14)

Bug Fixes

  • deps: update dependency typedoc to ^0.24.1 (c52f4ed)
  • playwright: updated Playwright to 1.32.3 (1d7f77b)
  • protractor: click interactions now scroll element into view before performing their action (3ea7bb8)

3.1.2 (2023-04-07)

Bug Fixes

  • protractor: introduced an explicit dependency on @serenity-js/web (a12271b)
  • protractor: moved @serenity-js/assertions to dev dependencies (dd187d1)

3.1.1 (2023-04-05)

Bug Fixes

  • core: ensure Wait.for(..) is not terminated prematurely by interactionTimeout (f1a94e2), closes #1604
  • deps: update playwright dependencies to ^1.32.2 (8398ec3)
  • playwright-test: use custom interactionTimeout when provided in the config (71c0401), closes #1604
  • protractor: use custom interactionTimeout when provided in the config (df8f387), closes #1604
  • webdriverio: use custom interactionTimeout when provided in the config (4cc75bf), closes #1604

3.1.0 (2023-04-02)

Bug Fixes

  • core: pinned dependencies on Serenity/JS modules (b314b11)
  • core: replaced dependency on depracated cuid with cuid2 (0417f1c)

Features

3.0.1 (2023-03-25)

Bug Fixes

  • deps: update playwright dependencies to ^1.32.1 (1ab8b80)
  • deps: update playwright dependencies to ^1.32.1 (bcb6839)
  • deps: update playwright dependencies to ^1.32.1 (3ba8d4c)
  • deps: update website dependencies to v2.4.0 (9d4e427)

3.0.0 (2023-03-23)

Features

  • core: release Serenity/JS v3 (0937dfa)

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 deepmerge to ^4.3.1 (d605a6b)
  • deps: update dependency graceful-fs to ^4.2.11 (3dc2d0b)
  • deps: update dependency typedoc to ^0.23.28 (5d5b8d7)
  • local-server: removed deprecated API StartLocalServer.onOneOfThePreferredPorts (58cc29c), closes #1403
  • playwright: it's now easier to inspect PlaywrightPage using the new interaction to Debug (cbf210a)

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)
  • jasmine: improved filesystem location detection for Jasmine scenarios (ec180d6)
  • rest: support for Axios 1.3.4 (e926bbd)

Features

  • assertions: fault-tolerant interaction to Ensure.eventually (d6297f7), closes #1522
  • 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
  • deps: update dependency deepmerge to ^4.3.0 (ac08d09)
  • deps: update dependency yargs to ^17.7.1 (1e7a52b)
  • deps: update playwright dependencies to ^1.31.2 (ebac2ff)
  • deps: update website dependencies (#1531) (4a58010)
  • playwright-test: ensure each new actor gets their own Playwright browser (f4c527b), closes #1523
  • protractor: default actors receive abilities to BrowseTheWebWithProtractor and TakeNotes (edcf734), closes #1523
  • webdriverio: default actors receive abilities to BrowseTheWebWithWebdriverIO and TakeNotes (3880d3b), closes #1523

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

Bug Fixes

  • console-reporter: any post-test StageCrewMember errors will now get printed to terminal (e4935df), closes #1495
  • 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
  • deps: update website dependencies (309c5f3)
  • jasmine: default to using file name as feature name when describe blocks are absent (3542955), 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
  • serenity-bdd: prevent invalid Serenity BDD JSON reports from being sent to processing (e59d4da), closes #1495

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

Bug Fixes

  • assertions: custom errors thrown via Ensure now include activity location (1fdf7a2), closes #1102
  • assertions: interaction to Ensure no longer emits an AssertionReport artifact (db3e5ae), closes #1486
  • 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)
  • core: updated npm-failsafe to 1.0.0 (df80731), closes #1486
  • playwright: upgraded Playwright to 1.30.0 (305a2c2)
  • web: renamed internal function inspector to inspected (4d2b147)

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)
  • protractor: improved assertion error reporting for Protractor (8f8f91c), closes #1102
  • webdriverio: improved assertion error reporting for WebdriverIO (7513752), closes #1102

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

Bug Fixes

  • playwright-test: corrected invalid import path (2c46662)

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)
  • deps: update website dependencies (#1437) (51ef285)
  • playwright-test: better names for screenshots attached to Playwright Test reports (8c04334)
  • rest: support for Axios 1.2.2 (b6fa54b)

Features

  • playwright-test: annotate Playwright Test reports with Serenity/JS tags (5e4a513)
  • playwright-test: custom actors can now be defined in playwright config file (117da34)
  • playwright-test: interoperability between Serenity/JS default actor and page (91803de)
  • playwright-test: support for Photographer and automated screenshots upon activity failure (c5527ca)

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

Bug Fixes

  • assertions: improved AssertionError messages (958ab7f)
  • playwright: introduced an explicit dependency on Playwright (2136132)
  • serenity-bdd: better error message when Java Runtime Environment is not detected (47c00c3), closes #1455

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

Bug Fixes

  • deps: update core dependencies to v5 (7c44d5a)
  • deps: update serenity bdd dependencies (51af1fc)
  • deps: update website dependencies (9be2176)
  • web: support for setting cookies using async or partially async data (ec8a65d), closes #1421

Features

  • cucumber: support reporting named hooks (426f68d), closes #1416
  • playwright: support for Playwright 1.29.0 (3dd0635)
  • rest: support for Axios 1.2.1 (b1ab268)

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

Features

  • cucumber: support for Cucumber 8.9.0 (67dcc71)

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)
  • deps: update dependency query-selector-shadow-dom to ^1.0.1 (9e3bac6)
  • deps: update website dependencies (0ac28ff)
  • playwright: upgraded to Playwright 1.28.1 (e9c4c1c)
  • webdriverio: migrated to use Puppeteer 19.3 APIs (1aa2ab7)
  • web: marked PageElement methods returning a MetaQuestion (6f78186)

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)
  • jasmine: remove warn jasmine#addSpecFiles (9fef049)
  • playwright: updated Playwright to 1.27.1 (a1fcecc)
  • playwright: upgraded Playwright to 1.27.1 (1345644)

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

Bug Fixes

  • core: invocation location detection works for built-in interactions (2ef0688)
  • cucumber: refactored Cucumber event emitters to simplify the implementation (b7a5d25)

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)
  • deps: update dependency cli-table3 to ^0.6.3 (062b991)
  • playwright: upgraded Playwright to 1.26.1 (b056613)
  • protractor: standardised Web model APIs to always use async/await (e8298dd)
  • webdriverio: standardised Web model APIs to always use async/await (8ea447f)
  • web: interaction to Clear.theValueOf(field) triggers compatible events for all web tools (ee6c112), closes #1329

Features

  • web: accept Answerable as argument of ExecuteScript.from(sourceUrl) (0b06703)

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

Bug Fixes

  • core: removed deprecated function formatted (64d7f21), closes #1260
  • deps: update website dependencies (f8e217b)
  • web: all web modules now correctly support handling iframe context for the current page (bcb8672), closes #1310
  • web: corrected interaction to Clear to avoid issues with elements that have no value attribute (37ae809), closes #1306
  • web: improve handling of closed windows on remote grids (79d387d), closes #1310
  • web: interaction to Clear now supports "contenteditable" elements (d090458), closes #1306

Features

  • web: interaction to Clear works with "contenteditable" elements across all the web tools (c53b00d), closes #1306

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

  • console-reporter: corrected default export so that it's detected as no-arg (e39fc12), closes #1240
  • console-reporter: corrected error reporting when scenarios are executed in parallel (170a31e), closes #1240
  • 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: bulk-attach all Serenity/JS events to Playwright report (a5f3d7c), 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
  • playwright: corrected not(isPresent()) for PlaywrightPageElement (0693b2f), closes #1240
  • playwright: upgraded Playwright to 1.25.2 (fcbfdda)
  • playwright: upgraded Playwright to 1.26.0 (a13ab3c)
  • rest: removed deprecated ChangeApiUrl (a8ab177), closes #1259
  • web: question about Text.of(element) now trims newline and space characters (c68bbe9)

Features

  • assertions: new assertion about a property of an object (9cc03d5)
  • console-reporter: improved support for tests executed in parallel (01264ce), closes #1240
  • console-reporter: report both total and real time it took to execute all the scenarios (654be57), closes #1240
  • core: serenity/JS stage crew members can now be configured using string (786cdad), closes #1240 #594
  • playwright-test: first draft of the Serenity/JS Playwright Test reporter (b9e3d89), closes #1240
  • playwright-test: improved Playwright Test reports (6c6b537), closes #1240
  • playwright-test: support Screenplay Pattern-style scenarios (c425c54), closes #1240
  • serenity-bdd: support for configuring SerenityBDDReporter using a ClassDescription string (968e349), closes #594

Reverts

  • web: reverted the change to Text that would make it automatically trim the retrieved text (f5a47b7)

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

Bug Fixes

  • cucumber: support for Cucumber 8.5.2 (1e0763e)
  • deps: update dependency diff to ^5.1.0 (f21af46)
  • deps: update dependency express to ^4.18.1 (f10f264)
  • deps: update dependency moment to ^2.29.4 (7b0fd6e)
  • deps: update website dependencies (#1278) (5e1de6d)
  • playwright: support for Playwright 1.25.1 (e0ab058)

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

Bug Fixes

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)
  • local-server: pinned portfinder to 1.0.28 (16369a9), closes http-party/node-portfinder#138
  • playwright: corrected internal imports from playwright to playwright-core (c42e7f3)
  • playwright: updated Playwright (3fa7c7e)
  • playwright: updated Playwright to 1.24.2 (9283910)
  • webdriverio: ensure Serenity/JS-specific config is not passed to WebdriverIO-specific services (384738e)
  • webdriverio: use local instead of global browser object in WebdriverioPage (323be75)
  • web: simplified isClickable so that it doesn't include visibility check (33ad47e)

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)
  • cucumber: updated @cucumber/messages (9d970d0)
  • playwright: upgraded Playwright to 1.24.0 (9f8d491)
  • web: simplified the implementation of isClickable and isEnabled (142eb86), closes #1255

Features

  • core: new interaction to Debug.values(..) and Debug.setBreakpoint() (ef54324)
  • cucumber: support for Cucumber v8 (e0029e2), closes #1216
  • web: PageElement-releated expectations now also check if the element is present (de4610c), closes #1255

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)
  • web: improved reliability of PageElementLocator for WebdriverIO and Protractor (b19d19a), closes #805

Features

  • assertions: isCloseTo(expected, tolerance) (bb0e935)

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

Bug Fixes

  • web: corrected promise handling to avoid the unhandled promise rejection warning (daac705)

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

Bug Fixes

  • core: corrected Wait so that polling stops when the timeout expires (60677e7)
  • protractor: isVisible check for ProtractorPageElement returns false for non-existent elements (e64eee3), closes #1236
  • webdriverio: improved resiliency of the WebdriverIOPuppeteerModalDialogHandler (5e56edf), closes #805
  • webdriverio: updated WebdriverIO dependencies (0833a3c)
  • web: improved JavaScript dialog-related error handling when taking screenshots (3cd1149), closes puppeteer/puppeteer#2481 #1156
  • web: removed dependency on is-plain-object (cbe76a6)
  • web: renamed PagesContext to BrowsingSession to make the name more descriptive (6b4e998), closes #1236

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
  • playwright: configurable navigation and interaction timeouts for BrowseTheWebWithPlaywright (142b78e), closes #1236
  • playwright: configurable navigation waitUntil timeout (2458fcb), closes #1236
  • playwright: initial support for Playwright (87e88a1), closes #493 #563 #911
  • playwright: interaction to Select option(s) from a dropdown (009041d), closes #1236 playwright: interactions to Scroll, Press, and TakeScreenshot (1c039d2), closes #493 #563 #911 playwright: isActive check for PlaywrightPageElement (dbf44eb), closes #1236 playwright: support for executing in-browser JavaScript (630bedd), closes #493 #563 #911 playwright: support for isClickable (afc8587), closes #1236 playwright: support for isVisible, plus consistent visibility checks across the board (2c5c929), closes #1236 playwright: support for working with cookies (1215a8f), closes #1237 playwright: support for working with frames (89d4621), closes #1236 web: introduced PagesContext and implemented PlaywrightPage (0045a72), closes #1236 web: new portable APIs to handle ModalDialog windows (c94d0ec), closes #1236 #805 #1156 web: standardised support for deep CSS selectors across the Web integration modules (e9e3f28), closes #1238 3.0.0-rc.19 (2022-06-11) Bug Fixes deps: upgraded "error-stack-parser" to 2.1.4 and removed dependency on "stackframe" (8d44563), closes stacktracejs/error-stack-parser#75 stacktracejs/error-stack-parser#80 rest: updated Axios to 0.27.2 (b54694b), closes axios/axios#4124 #1223 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 deps: updated error-stack-parser to 2.1.0 (e57957b), closes stacktracejs/error-stack-parser#75 deps: updated tiny-types (f1951cf) deps: updated tiny-types to 1.18.2 (83a651c) 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 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 (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: corrected an inefficient regular expression in By selector description generator (1b537d2) 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) web: corrected return types of question about Selected page elements (b32f280) Features web: Attribute.called(name).of(pageElement) returns a QuestionAdapter (e220665) web: CssClasses.of(pageElement) returns a QuestionAdapter (0942887) web: Value.of(pageElement) returns a QuestionAdapter (c45b483) 3.0.0-rc.13 (2022-03-02) Features web: combined Frame and PageElement so they can be Switch-ed to (1b7ab7c), closes #82 #227 #233 #365 3.0.0-rc.12 (2022-02-23) Bug Fixes serenity-bdd: downgraded to Serenity BDD CLI 3.1.0 (773786a), closes #1133 3.0.0-rc.11 (2022-02-13) Bug Fixes core: updated dependency on error-stack-parser (ea50285) web: made the constructor of BrowseTheWeb protected, since it's an abstract class (dbfbed0) Features serenity-bdd: updated Serenity BDD CLI to 3.2.0, which introduces new HTML reports (9abdbd6) web: support for working with frames and an interaction to Switch.to(frameOrPage) (ef73ef2), closes #805 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 webdriverio: corrected visibility of the browser field on BrowseTheWebWithWebdriverIO (0de725f) 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) cucumber: SECURITY: removed overrides for colors.js since the issue has now been addressed (481e327), closes cucumber/cucumber-js#1885 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) jasmine: integrated with Jasmine 3.99.0 (7f03bb5) Features web: support for advanced PageElement locator patterns (c1ff8b7), closes #1084 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 (c36e210) Features web: ElementExpectation makes it easier to define custom PageElement-related Expectations (92ebf7d) web: Text.ofAll accepts mapped PageElements (5314246) 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) examples: updated the examples to use the new PageElement, By, and .where APIs (54961a7), closes #805 rest: corrected LastResponse to wrap .status(), .body(), .header() and .headers() in Adapters (aab8e93), closes #1082 web: corrected synchronisation in Web questions and interactions (c3a0ad1) web: Photographer skips taking a screenshot if the Window is closed (DevTools protocol) (b682577) web: refactored Selector and NativeElementLocator classes to simplify the implementation (f0c8f11) web: simplified the selectors (b167e42), closes #1074 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: isVisible checks if the element is in viewport and not hidden behind other elements (429040f) web: new PageElement retrieval model based on Selectors (48bd94f) web: re-introduced PageElements.where DSL and universal By selectors (39fe0a1), closes #1081 3.0.0-rc.2 (2021-12-09) Bug Fixes lerna: corrected versions of internal deps (582b922) 3.0.0-rc.1 (2021-12-09) Bug Fixes examples: migrated Protractor TodoMVC example to Serenity/JS 3.0 (85a7cd9) serenity-bdd: upgraded Serenity BDD CLI to 2.6.0 (93c32f2) 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) deps: updated WebdriverIO (9de63d4) deps: web (b075b8e) jasmine: upgraded Jasmine to 3.10.0 (707dbff), closes jasmine/jasmine#1939 protractor: fixed the interaction to Switch (762ca84) protractor: lastScriptExecution.result() returns undefined instead of null for void functions (997d87a) protractor: modernised ProtractorParam to return a Screenplay Model (43c2032) protractor: removed interaction to ResizeBrowserWindow in favour of Page.setViewportSize() (b8e471d) protractor: replaced obsolete "Window", replaced by "Page" in @serenity-js/web (a3442c4) web: added missing export (c5ffc0a), closes #805 web: corrected timestamp rounding when retrieving the expiry date of a cookie (d636965) webdriverio: ensure getLastScriptExecutionResult returns undefined for void functions (aa00dfd) webdriverio: fixed synchronisation issue in ModalDialog (12324b2), closes #805 webdriverio: separated UIElement.hoverOver from UIElement.scrollIntoView (cf4ca2c) webdriverio: updated WebdriverIO to 7.13.2 (ef79d19) webdriverio: updated WebdriverIO to 7.16.7 (3316e29) web: ensure all Web interactions extend the same base class (b358c0b) web: fixed the interaction to Select (10b7b74) web: optimised PhotoTakingStrategy (085b7f7) web: removed Cookie as it will be re-implemented (cb3d081) web: removed incorrect export (ebf80c0) web: removed incorrect import (90cb025) web: removed window-specific APIs from BrowseTheWeb that got replaced by Page (918f447), closes #805 web: renamed Element and associated classes to PageElement to avoid name conflicts (1e4204b) web: renamed PageElementList to PageElements to improve readability (a9903a7), closes #805 web: standardised getters across PageElement implementations (336472b) 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) protractor: compatibility with @serenity-js/web (9df4db2), closes #805 protractor: removed Protractor-specific Target implementations in favour of @serenity-js/web (5cfc7e5) web: a common way to run the tests for all the web adapters (c7e584a) web: added Page.viewportSize and Page.setViewportSize methods (4cabbe2) web: all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web (7b6b95d) webdriverio: support for native WebdriverIO services (8d5ad22) web: interaction to set a Cookie (c056439), closes #805 web: interaction to setViewportSize of a Page (dd7f180) web: introduced UIElementQuestion to help ensure no NPEs in UI-related questions (fe29121) web: migrated Photographer from @serenity-js/protractor to @serenity-js/web (4506dac), closes #805 web: ModalDialog available for both Protractor and WebdriverIO adapters (ef3c566), closes #805 web: new module @serenity-js/web to provide Web-related Screenplay Pattern APIs (bead861) web: page provides an abstraction around browser window (2e70a3b) 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 switching browsing context (a73a635), 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.