All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
3.23.2 (2024-05-24)
- deps: update playwright dependencies to v1.44.1 (8a602c9)
3.23.1 (2024-05-20)
- 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)
- deps: update dependency sass to v1.77.1 (a9d7258)
- 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)
- deps: update dependency sass to v1.77.0 (a43874f)
- deps: update playwright dependencies to v1.44.0 (ae659d6)
3.22.3 (2024-05-01)
- 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)
- deps: update dependency sass to v1.75.0 (7a7136f)
- deps: update playwright dependencies to v1.43.1 (fbbb2d4)
3.22.0 (2024-04-11)
- 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)
- serenity-bdd: support for Serenity BDD 4.1.6 (48cbaf6)
3.21.2 (2024-03-31)
- deps: update dependency agent-base to v7.1.1 (f4d639f)
3.21.1 (2024-03-16)
3.21.0 (2024-03-04)
- playwright-test: support for reporting tags registered using the new Playwright 1.42 tags API (9d57157)
3.20.0 (2024-03-02)
- 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
- 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)
- console-reporter: fix comments (e8b21dd)
- 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)
- webdriverio: removed workaround for webdriverio/webdriverio#12251 as it's no longer needed (42da400)
3.18.0 (2024-02-17)
- 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)
- web: actors can now check if an HTML element attribute is present (3ce115a)
3.17.0 (2024-02-10)
- 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)
- playwright-test: announce tags automatically if present on the test title (00b9ef8)
3.16.2 (2024-02-05)
- serenity-bdd: upgraded Serenity BDD to 4.0.48 (f99b9cb)
3.16.1 (2024-02-03)
3.16.0 (2024-02-01)
- 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)
- 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)
- 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)
- 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
- 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)
- 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)
- 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)
- 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)
- 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)
- deps: update dependency lru-cache to ^10.0.3 (d3c41f8)
- deps: update playwright dependencies to ^1.40.0 (56c6ec0)
- webdriverio: migrated WebdriverIOPageElement to us WDIO 8.23.4 types (6881790), closes webdriverio/webdriverio#11679
3.13.2 (2023-11-14)
- 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)
- deps: update dependency tiny-types to ^1.21.0 (d4921f9)
3.13.0 (2023-10-19)
- cucumber: updated Cucumber Messages to v22 (b305860)
- deps: update playwright dependencies to ^1.39.0 (32af6b0)
- cucumber: support for Cucumber 10 (adb3ee5)
3.12.0 (2023-10-09)
- deps: update dependency typedoc to ^0.25.2 (95dfd3d)
- 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)
- core: allow for QuestionAdapter<string> to proxy .replaceAll() method (f1200c1)
- deps: update website dependencies (06041e9)
3.11.0 (2023-10-03)
- 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)
- deps: update playwright dependencies to ^1.38.1 (0072ddb)
3.10.3 (2023-09-15)
- 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)
- 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)
- 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)
3.9.1 (2023-08-18)
- 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)
- core: introduced MetaQuestionAdapter (b6676fd)
3.8.0 (2023-08-01)
- serenity-bdd: corrected screenshot sort order in screenshot detail viewer (7537622), closes #1790
- webdriverio: updated WebdriverIO to 8.13 (b8916df)
- 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)
- core: disabled emitting decorator meta-data (a0b0425)
- deps: update dependency fast-glob to ^3.3.1 (0822973)
- deps: update playwright dependencies to ^1.36.2 (f9cc78f)
- playwright-test: simplified exported types, as per @mxschmitt suggestion (94874ba), closes microsoft/playwright#24146 microsoft/TypeScript#5711
3.7.1 (2023-07-22)
3.7.0 (2023-07-20)
- core: support for proxying String.replace in QuestionAdapter (251113d)
- deps: update playwright dependencies to ^1.36.1 (b86289b)
- 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)
- 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)
- 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)
- 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)
- core: code clean-up: use type-only TypeScript imports where possible (aa49150)
- deps: update dependency @giscus/react to v2.3.0 (9146955)
- core: actors can tell the current time (c52959a)
3.4.2 (2023-06-30)
- 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)
- deps: update playwright dependencies to ^1.35.1 (9124e2e)
3.4.0 (2023-06-10)
- deps: update playwright dependencies to ^1.35.0 (fb4359f)
- webdriverio: support for WebdriverIO 8.11 APIs (cebbeec), closes #1739
- core: compile Serenity/JS against ES2021 (6b31184)
3.3.1 (2023-06-08)
- 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)
- 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)
- 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)
- 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)
- 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)
- core: introduced support for Node.js 20, dropped support for Node.js 14 (d0f58a6), closes #1678
- core: new factory method to create Path.fromURI (baed8c4)
- webdriverio: support for WebdriverIO 8 (6275cb6), closes #1541 #1682 webdriverio/webdriverio#10314
3.1.6 (2023-04-18)
3.1.5 (2023-04-18)
- serenity-bdd: improved support for nested requirement hierarchies with Cucumber.js (749fb0f), closes /github.com/serenity-bdd/serenity-core/blob/8f7d14c6dad47bb58a1585fef5f9d9a44bb963fd/serenity-model/src/main/java/net/thucydides/core/requirements/AbstractRequirementsTagProvider.java#L36 #1649
- webdriverio: webdriverio 7.31 breaks backwards-compatibility, pinning to 7.30 for now (305fc64)
3.1.4 (2023-04-16)
3.1.3 (2023-04-14)
- 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)
- 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)
- 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)
- core: pinned dependencies on Serenity/JS modules (b314b11)
- core: replaced dependency on depracated cuid with cuid2 (0417f1c)
3.0.1 (2023-03-25)
- 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)
- core: release Serenity/JS v3 (0937dfa)
3.0.0-rc.45 (2023-03-22)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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
toinspected
(4d2b147)
- 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)
- playwright-test: corrected invalid import path (2c46662)
3.0.0-rc.39 (2023-01-05)
- 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)
- 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
andpage
(91803de) - playwright-test: support for Photographer and automated screenshots upon activity failure (c5527ca)
3.0.0-rc.38 (2022-12-28)
- 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)
- 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
- 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)
- core: reverted the change to List.get and marked method as deprecated, to be removed in 3.0 (5ac8c69), closes #1403
- cucumber: support for Cucumber 8.9.0 (67dcc71)
3.0.0-rc.35 (2022-11-25)
- 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)
- 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)
3.0.0-rc.33 (2022-11-07)
- core: allow proxying
location
anddescription
fields byQuestionAdapter
(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)
- 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)
- 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
- web: accept Answerable as argument of ExecuteScript.from(sourceUrl) (0b06703)
3.0.0-rc.30 (2022-10-05)
- 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
- web: interaction to Clear works with "contenteditable" elements across all the web tools (c53b00d), closes #1306
3.0.0-rc.29 (2022-10-01)
- serenity-bdd: correct detection of invocation location for internal code (c76ec76)
3.0.0-rc.28 (2022-09-30)
- 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)
- 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
- web: reverted the change to Text that would make it automatically trim the retrieved text (f5a47b7)
3.0.0-rc.27 (2022-08-26)
- 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)
- local-server: updated portfinder to 1.0.32 (fed19e3), closes http-party/node-portfinder#139
- webdriverio: updated WebdriverIO dependencies to 7.20.9 (da3ff9c)
3.0.0-rc.25 (2022-08-15)
- 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)
- core: support for registering custom RuntimeErrors with ErrorSerialiser (feed78c)
3.0.0-rc.24 (2022-07-23)
- 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
- 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)
3.0.0-rc.22 (2022-07-15)
- 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
- assertions: isCloseTo(expected, tolerance) (bb0e935)
3.0.0-rc.21 (2022-07-11)
- web: corrected promise handling to avoid the unhandled promise rejection warning (daac705)
3.0.0-rc.20 (2022-07-11)
- 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
- 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.