@serenity-js/web 3.0.0-rc.21 → 3.0.0-rc.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,274 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.0.0-rc.24](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.23...v3.0.0-rc.24) (2022-07-23)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **web:** simplified the implementation of isClickable and isEnabled ([142eb86](https://github.com/serenity-js/serenity-js/commit/142eb861d95e08df7717e9fffc57153a62c88f66)), closes [#1255](https://github.com/serenity-js/serenity-js/issues/1255)
12
+
13
+
14
+ ### Features
15
+
16
+ * **web:** PageElement-releated expectations now also check if the element is present ([de4610c](https://github.com/serenity-js/serenity-js/commit/de4610c3199f7130fd56d2d6799a328cbd7540a2)), closes [#1255](https://github.com/serenity-js/serenity-js/issues/1255)
17
+
18
+
19
+
20
+
21
+
22
+ # [3.0.0-rc.23](https://github.com/serenity-js/serenity-js/compare/v2.33.10...v3.0.0-rc.23) (2022-07-19)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **node:** support for Node 18 ([73212bc](https://github.com/serenity-js/serenity-js/commit/73212bc9deb1998d871b0720a6b437687b3ceddc)), closes [#1243](https://github.com/serenity-js/serenity-js/issues/1243)
28
+
29
+
30
+
31
+ # [3.0.0-rc.22](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.21...v3.0.0-rc.22) (2022-07-15)
32
+
33
+
34
+
35
+ # [3.0.0-rc.21](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.20...v3.0.0-rc.21) (2022-07-11)
36
+
37
+
38
+
39
+ # [3.0.0-rc.20](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.19...v3.0.0-rc.20) (2022-07-11)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * **protractor:** isVisible check for ProtractorPageElement returns false for non-existent elements ([e64eee3](https://github.com/serenity-js/serenity-js/commit/e64eee377af32909f25e7c1d88f45a484abb1514)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
45
+ * **web:** improved JavaScript dialog-related error handling when taking screenshots ([3cd1149](https://github.com/serenity-js/serenity-js/commit/3cd1149ed74df95da17f1054cd4da93b095a4eed)), closes [puppeteer/puppeteer#2481](https://github.com/puppeteer/puppeteer/issues/2481) [#1156](https://github.com/serenity-js/serenity-js/issues/1156)
46
+ * **web:** renamed PagesContext to BrowsingSession to make the name more descriptive ([6b4e998](https://github.com/serenity-js/serenity-js/commit/6b4e9984d80f8f349f367e59bd0e615cd01703ec)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
47
+
48
+
49
+ ### Features
50
+
51
+ * **core:** interactions to Wait.for and Wait.until are now browser-independent ([d115142](https://github.com/serenity-js/serenity-js/commit/d1151427bed96c1ebd0d1dcc4159c6aeedc605de)), closes [#1035](https://github.com/serenity-js/serenity-js/issues/1035) [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
52
+ * **playwright:** configurable navigation waitUntil timeout ([2458fcb](https://github.com/serenity-js/serenity-js/commit/2458fcb22c946da41ab59cb21ac0d4cc48012da7)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
53
+ * **playwright:** initial support for Playwright ([87e88a1](https://github.com/serenity-js/serenity-js/commit/87e88a16cdc06477ed25eb83f9597fd370fdc109)), closes [#493](https://github.com/serenity-js/serenity-js/issues/493) [#563](https://github.com/serenity-js/serenity-js/issues/563) [#911](https://github.com/serenity-js/serenity-js/issues/911)
54
+ * **playwright:** interaction to Select option(s) from a <select /> dropdown ([009041d](https://github.com/serenity-js/serenity-js/commit/009041d83e22ddf3fef14670e0e5fd6d11cdfc73)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
55
+ * **playwright:** support for isVisible, plus consistent visibility checks across the board ([2c5c929](https://github.com/serenity-js/serenity-js/commit/2c5c929802f894f9fe59438a01f08b1b7bec3318)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
56
+ * **playwright:** support for working with frames ([89d4621](https://github.com/serenity-js/serenity-js/commit/89d46212073a342fe812a3ad2638a2ad0c39b620)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
57
+ * **web:** introduced PagesContext and implemented PlaywrightPage ([0045a72](https://github.com/serenity-js/serenity-js/commit/0045a726d540871333f644928218aed00bcd372c)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
58
+ * **web:** new portable APIs to handle ModalDialog windows ([c94d0ec](https://github.com/serenity-js/serenity-js/commit/c94d0ec43d2bc8aa39f8824f5d0f1e1cbcf137a1)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236) [#805](https://github.com/serenity-js/serenity-js/issues/805) [#1156](https://github.com/serenity-js/serenity-js/issues/1156)
59
+ * **web:** standardised support for deep CSS selectors across the Web integration modules ([e9e3f28](https://github.com/serenity-js/serenity-js/commit/e9e3f281191fc5c891841b6c8aab41213da3b0f5)), closes [#1238](https://github.com/serenity-js/serenity-js/issues/1238)
60
+
61
+
62
+
63
+ # [3.0.0-rc.19](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.18...v3.0.0-rc.19) (2022-06-11)
64
+
65
+
66
+
67
+ # [3.0.0-rc.18](https://github.com/serenity-js/serenity-js/compare/v2.33.9...v3.0.0-rc.18) (2022-06-06)
68
+
69
+
70
+ ### Bug Fixes
71
+
72
+ * **deps:** updated tiny-types ([f1951cf](https://github.com/serenity-js/serenity-js/commit/f1951cf753df3807b5778d116f8e8bc3f24830a7))
73
+ * **deps:** updated tiny-types to 1.18.2 ([83a651c](https://github.com/serenity-js/serenity-js/commit/83a651c4c2f3f8dbaabcdacba94c720efdff45dd))
74
+
75
+
76
+
77
+ # [3.0.0-rc.17](https://github.com/serenity-js/serenity-js/compare/v2.33.8...v3.0.0-rc.17) (2022-06-02)
78
+
79
+
80
+
81
+ # [3.0.0-rc.16](https://github.com/serenity-js/serenity-js/compare/v2.33.6...v3.0.0-rc.16) (2022-04-15)
82
+
83
+
84
+
85
+ # [3.0.0-rc.15](https://github.com/serenity-js/serenity-js/compare/v2.33.5...v3.0.0-rc.15) (2022-04-10)
86
+
87
+
88
+ ### Bug Fixes
89
+
90
+ * **web:** corrected an inefficient regular expression in By selector description generator ([1b537d2](https://github.com/serenity-js/serenity-js/commit/1b537d2de02f89760237816fc726f5e11c2bee0c))
91
+ * **web:** replaced legacy PromiseLike return types with native Promise types ([436b3cb](https://github.com/serenity-js/serenity-js/commit/436b3cba1793f63008a56633cc93669736155ce6))
92
+
93
+
94
+
95
+ # [3.0.0-rc.14](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v3.0.0-rc.14) (2022-03-28)
96
+
97
+
98
+ ### Bug Fixes
99
+
100
+ * **web:** auto-generated descriptions of nested PageElements are easier to read ([5a51d91](https://github.com/serenity-js/serenity-js/commit/5a51d91f0abb1c32814c219a44da51d52df77f87))
101
+ * **web:** corrected return types of question about Selected page elements ([b32f280](https://github.com/serenity-js/serenity-js/commit/b32f2809b018d6791a37fd80a226ca16a822b9b6))
102
+
103
+
104
+ ### Features
105
+
106
+ * **web:** Attribute.called(name).of(pageElement) returns a QuestionAdapter ([e220665](https://github.com/serenity-js/serenity-js/commit/e220665de37f15d4cfc8ad570bfa7b804d71335b))
107
+ * **web:** CssClasses.of(pageElement) returns a QuestionAdapter ([0942887](https://github.com/serenity-js/serenity-js/commit/0942887eb8e726dce3b8d64a7f9162ec782e61b7))
108
+ * **web:** Value.of(pageElement) returns a QuestionAdapter ([c45b483](https://github.com/serenity-js/serenity-js/commit/c45b483be071d297dc41e6b098a03f5697d53050))
109
+
110
+
111
+
112
+ # [3.0.0-rc.13](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.12...v3.0.0-rc.13) (2022-03-02)
113
+
114
+
115
+ ### Features
116
+
117
+ * **web:** combined Frame and PageElement so they can be Switch-ed to ([1b7ab7c](https://github.com/serenity-js/serenity-js/commit/1b7ab7c828034a14ba801cbfa97acc203fd55adf)), closes [#82](https://github.com/serenity-js/serenity-js/issues/82) [#227](https://github.com/serenity-js/serenity-js/issues/227) [#233](https://github.com/serenity-js/serenity-js/issues/233) [#365](https://github.com/serenity-js/serenity-js/issues/365)
118
+
119
+
120
+
121
+ # [3.0.0-rc.12](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v3.0.0-rc.12) (2022-02-23)
122
+
123
+
124
+
125
+ # [3.0.0-rc.11](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v3.0.0-rc.11) (2022-02-13)
126
+
127
+
128
+ ### Bug Fixes
129
+
130
+ * **web:** made the constructor of BrowseTheWeb protected, since it's an abstract class ([dbfbed0](https://github.com/serenity-js/serenity-js/commit/dbfbed02923bc1c589e588429c163ffbc7b13a34))
131
+
132
+
133
+ ### Features
134
+
135
+ * **web:** support for working with frames and an interaction to Switch.to(frameOrPage) ([ef73ef2](https://github.com/serenity-js/serenity-js/commit/ef73ef273f8a17e48d396d5ef03f6b761b136c9a)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
136
+
137
+
138
+
139
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
140
+
141
+
142
+
143
+ # [3.0.0-rc.9](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.8...v3.0.0-rc.9) (2022-02-01)
144
+
145
+
146
+
147
+ # [3.0.0-rc.8](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.7...v3.0.0-rc.8) (2022-01-28)
148
+
149
+
150
+
151
+ # [3.0.0-rc.7](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.6...v3.0.0-rc.7) (2022-01-28)
152
+
153
+
154
+ ### Features
155
+
156
+ * **assertions:** isPresent works with any Optional ([cea75dc](https://github.com/serenity-js/serenity-js/commit/cea75dc1c728e45e06a87aaf9c1573a237334285)), closes [#1103](https://github.com/serenity-js/serenity-js/issues/1103)
157
+ * **core:** `f` and `d` question description formatters ([c9f3fad](https://github.com/serenity-js/serenity-js/commit/c9f3fadd86ec0196f2cdbf76d9628bbef0a3fcba))
158
+ * **core:** replaced `Adapter` with `QuestionAdapter` and introduced `Optional` ([8d84ad3](https://github.com/serenity-js/serenity-js/commit/8d84ad3863e3c726533d0f21934fb1e2fa8b3022)), closes [#1103](https://github.com/serenity-js/serenity-js/issues/1103)
159
+ * **core:** support for Optional chaining, expectation isPresent, refactored Expectations ([1841ee5](https://github.com/serenity-js/serenity-js/commit/1841ee5fc48cfa403ddc53358f75764d9a010c21)), closes [#1099](https://github.com/serenity-js/serenity-js/issues/1099) [#1099](https://github.com/serenity-js/serenity-js/issues/1099) [#1103](https://github.com/serenity-js/serenity-js/issues/1103)
160
+
161
+
162
+
163
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
164
+
165
+
166
+
167
+ # [3.0.0-rc.5](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.4...v3.0.0-rc.5) (2022-01-07)
168
+
169
+
170
+ ### Features
171
+
172
+ * **web:** support for advanced PageElement locator patterns ([c1ff8b7](https://github.com/serenity-js/serenity-js/commit/c1ff8b7539ebc1da8f79ea2b6d17bb01c42f443d)), closes [#1084](https://github.com/serenity-js/serenity-js/issues/1084)
173
+
174
+
175
+
176
+ # [3.0.0-rc.4](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.3...v3.0.0-rc.4) (2021-12-30)
177
+
178
+
179
+ ### Features
180
+
181
+ * **web:** ElementExpectation makes it easier to define custom PageElement-related Expectations ([92ebf7d](https://github.com/serenity-js/serenity-js/commit/92ebf7db720d0fe88ddbe17b9958fa993b1fd02e))
182
+ * **web:** Text.ofAll accepts mapped PageElements ([5314246](https://github.com/serenity-js/serenity-js/commit/5314246305fa3f62446d5ec718f36354152be68d))
183
+
184
+
185
+
186
+ # [3.0.0-rc.3](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.2...v3.0.0-rc.3) (2021-12-29)
187
+
188
+
189
+ ### Bug Fixes
190
+
191
+ * **core:** refactored Mappable so that it's easier to implement filters ([176e0cd](https://github.com/serenity-js/serenity-js/commit/176e0cd0303d63271477b2b7a8e7b0572dda99a0)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
192
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
193
+ * **web:** corrected synchronisation in Web questions and interactions ([c3a0ad1](https://github.com/serenity-js/serenity-js/commit/c3a0ad16de311e71d7e82e4f463baa0ca6b18863))
194
+ * **web:** Photographer skips taking a screenshot if the Window is closed (DevTools protocol) ([b682577](https://github.com/serenity-js/serenity-js/commit/b682577ad649046fc1a4cd61a7315e11d60dcf32))
195
+ * **web:** refactored Selector and NativeElementLocator classes to simplify the implementation ([f0c8f11](https://github.com/serenity-js/serenity-js/commit/f0c8f113433958877d36f13d0bc7f355ea68d280))
196
+ * **web:** simplified the selectors ([b167e42](https://github.com/serenity-js/serenity-js/commit/b167e422eb66556845c31d5847b9fd33b707c764)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
197
+
198
+
199
+ ### Features
200
+
201
+ * **core:** new implementation of List.where filters ([45b3c80](https://github.com/serenity-js/serenity-js/commit/45b3c8080ca467ac6362e5217e7899ca36a04cdc)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
202
+ * **web:** isVisible checks if the element is in viewport and not hidden behind other elements ([429040f](https://github.com/serenity-js/serenity-js/commit/429040fb32b04cd4bc7524100635203fd8128eb6))
203
+ * **web:** new PageElement retrieval model based on Selectors ([48bd94f](https://github.com/serenity-js/serenity-js/commit/48bd94f3c29707b66dcf81a7522f7529b6f9fcfb))
204
+ * **web:** re-introduced PageElements.where DSL and universal By selectors ([39fe0a1](https://github.com/serenity-js/serenity-js/commit/39fe0a10edf7f652e93911159e4a4689c36d6876)), closes [#1081](https://github.com/serenity-js/serenity-js/issues/1081)
205
+
206
+
207
+
208
+ # [3.0.0-rc.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
209
+
210
+
211
+
212
+ # [3.0.0-rc.1](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.0...v3.0.0-rc.1) (2021-12-09)
213
+
214
+
215
+
216
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
217
+
218
+
219
+ ### Bug Fixes
220
+
221
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
222
+ * **core:** renamed "Model" type to "Adapter" to better reflect its purpose ([b4ea7a1](https://github.com/serenity-js/serenity-js/commit/b4ea7a100fac2c896990bf15cbc906de641196b8)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
223
+ * **web:** added missing export ([c5ffc0a](https://github.com/serenity-js/serenity-js/commit/c5ffc0a83905c99ea0020577503170c427fdb9f2)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
224
+ * **webdriverio:** separated UIElement.hoverOver from UIElement.scrollIntoView ([cf4ca2c](https://github.com/serenity-js/serenity-js/commit/cf4ca2c531e0f90f9a27917e322359c13bfbc6e6))
225
+ * **web:** ensure all Web interactions extend the same base class ([b358c0b](https://github.com/serenity-js/serenity-js/commit/b358c0b67c1de11af63e1e2142d3613692769cd6))
226
+ * **web:** fixed the interaction to Select ([10b7b74](https://github.com/serenity-js/serenity-js/commit/10b7b7446743b5866a1b458577ea7d2e11bf5a8f))
227
+ * **web:** optimised PhotoTakingStrategy ([085b7f7](https://github.com/serenity-js/serenity-js/commit/085b7f716033b22207af47edac58c896f46af62d))
228
+ * **web:** removed incorrect export ([ebf80c0](https://github.com/serenity-js/serenity-js/commit/ebf80c019af4db2a847e4b98599bce02b8acef23))
229
+ * **web:** removed incorrect import ([90cb025](https://github.com/serenity-js/serenity-js/commit/90cb0251a00a7bff098376110dcec2f9f2c5d5c0))
230
+ * **web:** removed window-specific APIs from BrowseTheWeb that got replaced by Page ([918f447](https://github.com/serenity-js/serenity-js/commit/918f447c1d8f326fbf5730f1aa61108045556212)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
231
+ * **web:** renamed Element and associated classes to PageElement to avoid name conflicts ([1e4204b](https://github.com/serenity-js/serenity-js/commit/1e4204b5507469e6574c87a6d84454e39e8a813e))
232
+ * **web:** renamed PageElementList to PageElements to improve readability ([a9903a7](https://github.com/serenity-js/serenity-js/commit/a9903a7389b00106ef94d2bdb9f86a7fd04be541)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
233
+ * **web:** standardised getters across PageElement implementations ([336472b](https://github.com/serenity-js/serenity-js/commit/336472b1a6882412f6a88483e51266909a1d51d0))
234
+ * **web:** wordsmithing of interface names ([5a1e76a](https://github.com/serenity-js/serenity-js/commit/5a1e76a9c162370e17238fcccc9f08e109d543c3))
235
+
236
+
237
+ ### Features
238
+
239
+ * **core:** question.about produces "props" that proxy the methods of the underlying model ([f771872](https://github.com/serenity-js/serenity-js/commit/f771872c56b487e404002c3800fc8f3baaed804f))
240
+ * **protractor:** compatibility with @serenity-js/web ([9df4db2](https://github.com/serenity-js/serenity-js/commit/9df4db27a6e0ae62bf0d0e679a170d4865041043)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
241
+ * **web:** a common way to run the tests for all the web adapters ([c7e584a](https://github.com/serenity-js/serenity-js/commit/c7e584a9bf288ebc7781affdb720097527e8ed3a))
242
+ * **web:** added Page.viewportSize and Page.setViewportSize methods ([4cabbe2](https://github.com/serenity-js/serenity-js/commit/4cabbe21a7fbac3457c6a6ea3d4442a62c3f1f3c))
243
+ * **web:** all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web ([7b6b95d](https://github.com/serenity-js/serenity-js/commit/7b6b95dc255446c29ae213ba2a1d142d426d16c8))
244
+ * **webdriverio:** support for native WebdriverIO services ([8d5ad22](https://github.com/serenity-js/serenity-js/commit/8d5ad22594cdb2ebddedc58a30259ca8430e360c))
245
+ * **web:** interaction to set a Cookie ([c056439](https://github.com/serenity-js/serenity-js/commit/c056439746a8f57c3edd937b8862f2babb70e94e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
246
+ * **web:** introduced UIElementQuestion to help ensure no NPEs in UI-related questions ([fe29121](https://github.com/serenity-js/serenity-js/commit/fe29121118d630e9fbd73dca85496e20948e26e0))
247
+ * **web:** migrated Photographer from @serenity-js/protractor to @serenity-js/web ([4506dac](https://github.com/serenity-js/serenity-js/commit/4506dacebdf955c32c4eff17bf9982c8e45e2925)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
248
+ * **web:** ModalDialog available for both Protractor and WebdriverIO adapters ([ef3c566](https://github.com/serenity-js/serenity-js/commit/ef3c566aed12b52aa22c54058992d369172b8597)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
249
+ * **web:** new module @serenity-js/web to provide Web-related Screenplay Pattern APIs ([bead861](https://github.com/serenity-js/serenity-js/commit/bead8612af1a5c99b775e680a3904f44d0281cf9))
250
+ * **web:** page provides an abstraction around browser window ([2e70a3b](https://github.com/serenity-js/serenity-js/commit/2e70a3b6af2e8cc49255820e8a1aaffcc71b76a8))
251
+ * **web:** Page.url() and Page.title() replace Website.url() and Website.title() ([49fe009](https://github.com/serenity-js/serenity-js/commit/49fe0094422ab53ec67d4ba303f80c33e382eebd)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
252
+ * **web:** removed Target in favour of PageElement ([69496c4](https://github.com/serenity-js/serenity-js/commit/69496c47c4a1ec7b92e7ab6c83da1559e926f28e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
253
+ * **web:** support for switching browsing context ([a73a635](https://github.com/serenity-js/serenity-js/commit/a73a635f93183d67229acde78e74526564008869)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
254
+ * **web:** support for working with cookies ([39cde6d](https://github.com/serenity-js/serenity-js/commit/39cde6de7a36d27a8b1c596493efbec94900af6b)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
255
+
256
+
257
+ ### BREAKING CHANGES
258
+
259
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
260
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
261
+
262
+
263
+
264
+
265
+
266
+ # [3.0.0-rc.22](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.21...v3.0.0-rc.22) (2022-07-15)
267
+
268
+ **Note:** Version bump only for package @serenity-js/web
269
+
270
+
271
+
272
+
273
+
6
274
  # [3.0.0-rc.21](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.20...v3.0.0-rc.21) (2022-07-11)
7
275
 
8
276
  **Note:** Version bump only for package @serenity-js/web
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isActive = void 0;
4
+ const assertions_1 = require("@serenity-js/assertions");
5
+ const core_1 = require("@serenity-js/core");
4
6
  const ElementExpectation_1 = require("./ElementExpectation");
5
7
  /**
6
8
  * @desc
@@ -14,9 +16,8 @@ const ElementExpectation_1 = require("./ElementExpectation");
14
16
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
15
17
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
16
18
  */
17
- // todo: isFocused?
18
19
  function isActive() {
19
- return ElementExpectation_1.ElementExpectation.forElementTo('become active', actual => actual.isActive());
20
+ return core_1.Expectation.to('become active').soThatActual((0, assertions_1.and)((0, assertions_1.isPresent)(), ElementExpectation_1.ElementExpectation.forElementTo('become active', actual => actual.isActive())));
20
21
  }
21
22
  exports.isActive = isActive;
22
23
  //# sourceMappingURL=isActive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isActive.js","sourceRoot":"","sources":["../../src/expectations/isActive.ts"],"names":[],"mappings":";;;AAGA,6DAA0D;AAE1D;;;;;;;;;;;GAWG;AACH,mBAAmB;AACnB,SAAgB,QAAQ;IACpB,OAAO,uCAAkB,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzF,CAAC;AAFD,4BAEC"}
1
+ {"version":3,"file":"isActive.js","sourceRoot":"","sources":["../../src/expectations/isActive.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,4CAAgD;AAGhD,6DAA0D;AAE1D;;;;;;;;;;;GAWG;AACH,SAAgB,QAAQ;IACpB,OAAO,kBAAW,CAAC,EAAE,CAAuB,eAAe,CAAC,CAAC,YAAY,CAAC,IAAA,gBAAG,EACzE,IAAA,sBAAS,GAAE,EACX,uCAAkB,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAChF,CAAC,CAAC;AACP,CAAC;AALD,4BAKC"}
@@ -4,7 +4,6 @@ exports.isClickable = void 0;
4
4
  const assertions_1 = require("@serenity-js/assertions");
5
5
  const core_1 = require("@serenity-js/core");
6
6
  const ElementExpectation_1 = require("./ElementExpectation");
7
- const isEnabled_1 = require("./isEnabled");
8
7
  const isVisible_1 = require("./isVisible");
9
8
  /**
10
9
  * @desc
@@ -24,7 +23,7 @@ const isVisible_1 = require("./isVisible");
24
23
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
25
24
  */
26
25
  function isClickable() {
27
- return core_1.Expectation.to('become clickable').soThatActual((0, assertions_1.and)((0, isVisible_1.isVisible)(), (0, isEnabled_1.isEnabled)(), ElementExpectation_1.ElementExpectation.forElementTo('become clickable', actual => actual.isClickable())));
26
+ return core_1.Expectation.to('become clickable').soThatActual((0, assertions_1.and)((0, isVisible_1.isVisible)(), ElementExpectation_1.ElementExpectation.forElementTo('become clickable', actual => actual.isClickable())));
28
27
  }
29
28
  exports.isClickable = isClickable;
30
29
  //# sourceMappingURL=isClickable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isClickable.js","sourceRoot":"","sources":["../../src/expectations/isClickable.ts"],"names":[],"mappings":";;;AAAA,wDAA8C;AAC9C,4CAAgD;AAGhD,6DAA0D;AAC1D,2CAAwC;AACxC,2CAAwC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,WAAW;IACvB,OAAO,kBAAW,CAAC,EAAE,CAAuB,kBAAkB,CAAC,CAAC,YAAY,CAAC,IAAA,gBAAG,EAC5E,IAAA,qBAAS,GAAE,EACX,IAAA,qBAAS,GAAE,EACX,uCAAkB,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACtF,CAAC,CAAC;AACP,CAAC;AAND,kCAMC"}
1
+ {"version":3,"file":"isClickable.js","sourceRoot":"","sources":["../../src/expectations/isClickable.ts"],"names":[],"mappings":";;;AAAA,wDAA8C;AAC9C,4CAAgD;AAGhD,6DAA0D;AAC1D,2CAAwC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,WAAW;IACvB,OAAO,kBAAW,CAAC,EAAE,CAAuB,kBAAkB,CAAC,CAAC,YAAY,CAAC,IAAA,gBAAG,EAC5E,IAAA,qBAAS,GAAE,EACX,uCAAkB,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CACtF,CAAC,CAAC;AACP,CAAC;AALD,kCAKC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isEnabled = void 0;
4
+ const assertions_1 = require("@serenity-js/assertions");
5
+ const core_1 = require("@serenity-js/core");
4
6
  const ElementExpectation_1 = require("./ElementExpectation");
5
7
  /**
6
8
  * @desc
@@ -14,7 +16,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
14
16
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
15
17
  */
16
18
  function isEnabled() {
17
- return ElementExpectation_1.ElementExpectation.forElementTo('become enabled', actual => actual.isEnabled());
19
+ return core_1.Expectation.to('become enabled').soThatActual((0, assertions_1.and)((0, assertions_1.isPresent)(), ElementExpectation_1.ElementExpectation.forElementTo('become enabled', actual => actual.isEnabled())));
18
20
  }
19
21
  exports.isEnabled = isEnabled;
20
22
  //# sourceMappingURL=isEnabled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isEnabled.js","sourceRoot":"","sources":["../../src/expectations/isEnabled.ts"],"names":[],"mappings":";;;AAGA,6DAA0D;AAE1D;;;;;;;;;;GAUG;AACH,SAAgB,SAAS;IACrB,OAAO,uCAAkB,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3F,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"isEnabled.js","sourceRoot":"","sources":["../../src/expectations/isEnabled.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,4CAAgD;AAGhD,6DAA0D;AAE1D;;;;;;;;;;GAUG;AACH,SAAgB,SAAS;IACrB,OAAO,kBAAW,CAAC,EAAE,CAAuB,gBAAgB,CAAC,CAAC,YAAY,CAAC,IAAA,gBAAG,EAC1E,IAAA,sBAAS,GAAE,EACX,uCAAkB,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAClF,CAAC,CAAC;AACP,CAAC;AALD,8BAKC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isVisible = void 0;
4
+ const assertions_1 = require("@serenity-js/assertions");
5
+ const core_1 = require("@serenity-js/core");
4
6
  const ElementExpectation_1 = require("./ElementExpectation");
5
7
  /**
6
8
  * @desc
@@ -17,7 +19,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
17
19
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
18
20
  */
19
21
  function isVisible() {
20
- return ElementExpectation_1.ElementExpectation.forElementTo('become visible', actual => actual.isVisible());
22
+ return core_1.Expectation.to('become visible').soThatActual((0, assertions_1.and)((0, assertions_1.isPresent)(), ElementExpectation_1.ElementExpectation.forElementTo('become visible', actual => actual.isVisible())));
21
23
  }
22
24
  exports.isVisible = isVisible;
23
25
  //# sourceMappingURL=isVisible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isVisible.js","sourceRoot":"","sources":["../../src/expectations/isVisible.ts"],"names":[],"mappings":";;;AAGA,6DAA0D;AAE1D;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS;IACrB,OAAO,uCAAkB,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3F,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"isVisible.js","sourceRoot":"","sources":["../../src/expectations/isVisible.ts"],"names":[],"mappings":";;;AAAA,wDAAyD;AACzD,4CAAgD;AAGhD,6DAA0D;AAE1D;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS;IACrB,OAAO,kBAAW,CAAC,EAAE,CAAuB,gBAAgB,CAAC,CAAC,YAAY,CAAC,IAAA,gBAAG,EAC1E,IAAA,sBAAS,GAAE,EACX,uCAAkB,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAClF,CAAC,CAAC;AACP,CAAC;AALD,8BAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/web",
3
- "version": "3.0.0-rc.21",
3
+ "version": "3.0.0-rc.24",
4
4
  "description": "Serenity/JS Screenplay Pattern APIs for the Web",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -43,12 +43,12 @@
43
43
  "url": "https://github.com/serenity-js/serenity-js/issues"
44
44
  },
45
45
  "engines": {
46
- "node": "^14 || ^16",
46
+ "node": "^14 || ^16 || ^18",
47
47
  "npm": "^6 || ^7 || ^8"
48
48
  },
49
49
  "dependencies": {
50
- "@serenity-js/assertions": "3.0.0-rc.21",
51
- "@serenity-js/core": "3.0.0-rc.21",
50
+ "@serenity-js/assertions": "3.0.0-rc.24",
51
+ "@serenity-js/core": "3.0.0-rc.24",
52
52
  "tiny-types": "^1.18.4"
53
53
  },
54
54
  "devDependencies": {
@@ -60,5 +60,5 @@
60
60
  "ts-node": "10.8.2",
61
61
  "typescript": "^4.7.4"
62
62
  },
63
- "gitHead": "ddf72178856dd97ee448029f5029236c3c8b8c8b"
63
+ "gitHead": "76443ef557e876727b7dae9ef66d4e6612a3034b"
64
64
  }
@@ -1,3 +1,4 @@
1
+ import { and, isPresent } from '@serenity-js/assertions';
1
2
  import { Expectation } from '@serenity-js/core';
2
3
 
3
4
  import { PageElement } from '../screenplay';
@@ -15,8 +16,9 @@ import { ElementExpectation } from './ElementExpectation';
15
16
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
16
17
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
17
18
  */
18
- // todo: isFocused?
19
19
  export function isActive(): Expectation<PageElement> {
20
- return ElementExpectation.forElementTo('become active', actual => actual.isActive());
20
+ return Expectation.to<boolean, PageElement>('become active').soThatActual(and(
21
+ isPresent(),
22
+ ElementExpectation.forElementTo('become active', actual => actual.isActive()),
23
+ ));
21
24
  }
22
-
@@ -3,7 +3,6 @@ import { Expectation } from '@serenity-js/core';
3
3
 
4
4
  import { PageElement } from '../screenplay';
5
5
  import { ElementExpectation } from './ElementExpectation';
6
- import { isEnabled } from './isEnabled';
7
6
  import { isVisible } from './isVisible';
8
7
 
9
8
  /**
@@ -26,7 +25,6 @@ import { isVisible } from './isVisible';
26
25
  export function isClickable(): Expectation<PageElement> {
27
26
  return Expectation.to<boolean, PageElement>('become clickable').soThatActual(and(
28
27
  isVisible(),
29
- isEnabled(),
30
28
  ElementExpectation.forElementTo('become clickable', actual => actual.isClickable())
31
29
  ));
32
30
  }
@@ -1,3 +1,4 @@
1
+ import { and, isPresent } from '@serenity-js/assertions';
1
2
  import { Expectation } from '@serenity-js/core';
2
3
 
3
4
  import { PageElement } from '../screenplay';
@@ -15,5 +16,8 @@ import { ElementExpectation } from './ElementExpectation';
15
16
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
16
17
  */
17
18
  export function isEnabled(): Expectation<PageElement> {
18
- return ElementExpectation.forElementTo('become enabled', actual => actual.isEnabled());
19
+ return Expectation.to<boolean, PageElement>('become enabled').soThatActual(and(
20
+ isPresent(),
21
+ ElementExpectation.forElementTo('become enabled', actual => actual.isEnabled())
22
+ ));
19
23
  }
@@ -1,3 +1,4 @@
1
+ import { and, isPresent } from '@serenity-js/assertions';
1
2
  import { Expectation } from '@serenity-js/core';
2
3
 
3
4
  import { PageElement } from '../screenplay';
@@ -18,5 +19,8 @@ import { ElementExpectation } from './ElementExpectation';
18
19
  * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
19
20
  */
20
21
  export function isVisible(): Expectation<PageElement> {
21
- return ElementExpectation.forElementTo('become visible', actual => actual.isVisible());
22
+ return Expectation.to<boolean, PageElement>('become visible').soThatActual(and(
23
+ isPresent(),
24
+ ElementExpectation.forElementTo('become visible', actual => actual.isVisible()),
25
+ ));
22
26
  }