Summary
This release introduces improvements to the following Serenity/JS modules:
View detailed code diff on GitHub
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