@serenity-js/assertions 3.0.0-rc.2 → 3.0.0-rc.20

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +461 -1
  2. package/README.md +1 -1
  3. package/lib/Ensure.d.ts +1 -1
  4. package/lib/Ensure.js +7 -10
  5. package/lib/Ensure.js.map +1 -1
  6. package/lib/expectations/and.d.ts +1 -1
  7. package/lib/expectations/and.js +6 -6
  8. package/lib/expectations/and.js.map +1 -1
  9. package/lib/expectations/contain.d.ts +1 -1
  10. package/lib/expectations/containAtLeastOneItemThat.d.ts +1 -1
  11. package/lib/expectations/containAtLeastOneItemThat.js +16 -9
  12. package/lib/expectations/containAtLeastOneItemThat.js.map +1 -1
  13. package/lib/expectations/containItemsWhereEachItem.d.ts +1 -1
  14. package/lib/expectations/containItemsWhereEachItem.js +16 -9
  15. package/lib/expectations/containItemsWhereEachItem.js.map +1 -1
  16. package/lib/expectations/index.d.ts +1 -1
  17. package/lib/expectations/index.js +6 -2
  18. package/lib/expectations/index.js.map +1 -1
  19. package/lib/expectations/isFalse.js.map +1 -1
  20. package/lib/expectations/isPresent.d.ts +14 -0
  21. package/lib/expectations/isPresent.js +50 -0
  22. package/lib/expectations/isPresent.js.map +1 -0
  23. package/lib/expectations/isTrue.js.map +1 -1
  24. package/lib/expectations/matches.d.ts +1 -1
  25. package/lib/expectations/not.d.ts +1 -1
  26. package/lib/expectations/not.js +7 -8
  27. package/lib/expectations/not.js.map +1 -1
  28. package/lib/expectations/or.d.ts +1 -1
  29. package/lib/expectations/or.js +17 -12
  30. package/lib/expectations/or.js.map +1 -1
  31. package/lib/index.js +5 -1
  32. package/lib/index.js.map +1 -1
  33. package/package.json +12 -33
  34. package/src/Ensure.ts +17 -21
  35. package/src/expectations/and.ts +19 -18
  36. package/src/expectations/contain.ts +1 -1
  37. package/src/expectations/containAtLeastOneItemThat.ts +38 -14
  38. package/src/expectations/containItemsWhereEachItem.ts +38 -14
  39. package/src/expectations/index.ts +1 -1
  40. package/src/expectations/isFalse.ts +1 -1
  41. package/src/expectations/isPresent.ts +58 -0
  42. package/src/expectations/isTrue.ts +1 -1
  43. package/src/expectations/matches.ts +1 -1
  44. package/src/expectations/not.ts +15 -15
  45. package/src/expectations/or.ts +28 -25
  46. package/lib/expectations/property.d.ts +0 -2
  47. package/lib/expectations/property.js +0 -28
  48. package/lib/expectations/property.js.map +0 -1
  49. package/src/expectations/property.ts +0 -33
package/CHANGELOG.md CHANGED
@@ -3,7 +3,18 @@
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.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
6
+ # [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)
7
+
8
+
9
+ ### Features
10
+
11
+ * **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)
12
+
13
+
14
+
15
+
16
+
17
+ # [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)
7
18
 
8
19
  **Note:** Version bump only for package @serenity-js/assertions
9
20
 
@@ -11,14 +22,371 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
22
 
12
23
 
13
24
 
25
+ # [3.0.0-rc.18](https://github.com/serenity-js/serenity-js/compare/v2.33.9...v3.0.0-rc.18) (2022-06-06)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **deps:** updated tiny-types ([f1951cf](https://github.com/serenity-js/serenity-js/commit/f1951cf753df3807b5778d116f8e8bc3f24830a7))
31
+ * **deps:** updated tiny-types to 1.18.2 ([83a651c](https://github.com/serenity-js/serenity-js/commit/83a651c4c2f3f8dbaabcdacba94c720efdff45dd))
32
+
33
+
34
+
35
+ # [3.0.0-rc.17](https://github.com/serenity-js/serenity-js/compare/v2.33.8...v3.0.0-rc.17) (2022-06-02)
36
+
37
+
38
+
39
+ # [3.0.0-rc.16](https://github.com/serenity-js/serenity-js/compare/v2.33.6...v3.0.0-rc.16) (2022-04-15)
40
+
41
+
42
+
43
+ # [3.0.0-rc.15](https://github.com/serenity-js/serenity-js/compare/v2.33.5...v3.0.0-rc.15) (2022-04-10)
44
+
45
+
46
+
47
+ # [3.0.0-rc.14](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v3.0.0-rc.14) (2022-03-28)
48
+
49
+
50
+
51
+ # [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)
52
+
53
+
54
+
55
+ # [3.0.0-rc.12](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v3.0.0-rc.12) (2022-02-23)
56
+
57
+
58
+
59
+ # [3.0.0-rc.11](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v3.0.0-rc.11) (2022-02-13)
60
+
61
+
62
+
63
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
64
+
65
+
66
+
67
+ # [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)
68
+
69
+
70
+
71
+ # [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)
72
+
73
+
74
+
75
+ # [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)
76
+
77
+
78
+ ### Features
79
+
80
+ * **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)
81
+ * **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)
82
+ * **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)
83
+
84
+
85
+
86
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
87
+
88
+
89
+
90
+ # [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)
91
+
92
+
93
+
94
+ # [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)
95
+
96
+
97
+
98
+ # [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)
99
+
100
+
101
+ ### Bug Fixes
102
+
103
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
104
+
105
+
106
+
107
+ # [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)
108
+
109
+
110
+
14
111
  # [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)
15
112
 
113
+
114
+
115
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
116
+
117
+
118
+ ### Bug Fixes
119
+
120
+ * **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)
121
+
122
+
123
+ ### BREAKING CHANGES
124
+
125
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
126
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
127
+
128
+
129
+
130
+
131
+
132
+ # [3.0.0-rc.17](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.16...v3.0.0-rc.17) (2022-06-02)
133
+
16
134
  **Note:** Version bump only for package @serenity-js/assertions
17
135
 
18
136
 
19
137
 
20
138
 
21
139
 
140
+ # [3.0.0-rc.16](https://github.com/serenity-js/serenity-js/compare/v2.33.6...v3.0.0-rc.16) (2022-04-15)
141
+
142
+
143
+
144
+ # [3.0.0-rc.15](https://github.com/serenity-js/serenity-js/compare/v2.33.5...v3.0.0-rc.15) (2022-04-10)
145
+
146
+
147
+
148
+ # [3.0.0-rc.14](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v3.0.0-rc.14) (2022-03-28)
149
+
150
+
151
+
152
+ # [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)
153
+
154
+
155
+
156
+ # [3.0.0-rc.12](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v3.0.0-rc.12) (2022-02-23)
157
+
158
+
159
+
160
+ # [3.0.0-rc.11](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v3.0.0-rc.11) (2022-02-13)
161
+
162
+
163
+
164
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
165
+
166
+
167
+
168
+ # [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)
169
+
170
+
171
+
172
+ # [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)
173
+
174
+
175
+
176
+ # [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)
177
+
178
+
179
+ ### Features
180
+
181
+ * **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)
182
+ * **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)
183
+ * **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)
184
+
185
+
186
+
187
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
188
+
189
+
190
+
191
+ # [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)
192
+
193
+
194
+
195
+ # [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)
196
+
197
+
198
+
199
+ # [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)
200
+
201
+
202
+ ### Bug Fixes
203
+
204
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
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
+
223
+
224
+ ### BREAKING CHANGES
225
+
226
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
227
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
228
+
229
+
230
+
231
+
232
+
233
+ # [3.0.0-rc.15](https://github.com/serenity-js/serenity-js/compare/v2.33.5...v3.0.0-rc.15) (2022-04-10)
234
+
235
+
236
+
237
+ # [3.0.0-rc.14](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v3.0.0-rc.14) (2022-03-28)
238
+
239
+
240
+
241
+ # [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)
242
+
243
+
244
+
245
+ # [3.0.0-rc.12](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v3.0.0-rc.12) (2022-02-23)
246
+
247
+
248
+
249
+ # [3.0.0-rc.11](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v3.0.0-rc.11) (2022-02-13)
250
+
251
+
252
+
253
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
254
+
255
+
256
+
257
+ # [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)
258
+
259
+
260
+
261
+ # [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)
262
+
263
+
264
+
265
+ # [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)
266
+
267
+
268
+ ### Features
269
+
270
+ * **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)
271
+ * **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)
272
+ * **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)
273
+
274
+
275
+
276
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
277
+
278
+
279
+
280
+ # [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)
281
+
282
+
283
+
284
+ # [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)
285
+
286
+
287
+
288
+ # [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)
289
+
290
+
291
+ ### Bug Fixes
292
+
293
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
294
+
295
+
296
+
297
+ # [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)
298
+
299
+
300
+
301
+ # [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)
302
+
303
+
304
+
305
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
306
+
307
+
308
+ ### Bug Fixes
309
+
310
+ * **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)
311
+
312
+
313
+ ### BREAKING CHANGES
314
+
315
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
316
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
317
+
318
+
319
+
320
+
321
+
322
+ # [3.0.0-rc.14](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v3.0.0-rc.14) (2022-03-28)
323
+
324
+
325
+
326
+ # [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)
327
+
328
+
329
+
330
+ # [3.0.0-rc.12](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v3.0.0-rc.12) (2022-02-23)
331
+
332
+
333
+
334
+ # [3.0.0-rc.11](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v3.0.0-rc.11) (2022-02-13)
335
+
336
+
337
+
338
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
339
+
340
+
341
+
342
+ # [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)
343
+
344
+
345
+
346
+ # [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)
347
+
348
+
349
+
350
+ # [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)
351
+
352
+
353
+ ### Features
354
+
355
+ * **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)
356
+ * **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)
357
+ * **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)
358
+
359
+
360
+
361
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
362
+
363
+
364
+
365
+ # [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)
366
+
367
+
368
+
369
+ # [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)
370
+
371
+
372
+
373
+ # [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)
374
+
375
+
376
+ ### Bug Fixes
377
+
378
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
379
+
380
+
381
+
382
+ # [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)
383
+
384
+
385
+
386
+ # [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)
387
+
388
+
389
+
22
390
  # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
23
391
 
24
392
 
@@ -32,8 +400,100 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
32
400
  * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
33
401
  modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
34
402
 
403
+ ## [2.33.9](https://github.com/serenity-js/serenity-js/compare/v2.33.8...v2.33.9) (2022-06-02)
404
+
405
+ **Note:** Version bump only for package @serenity-js/assertions
406
+
407
+
408
+
409
+
410
+
411
+ ## [2.33.8](https://github.com/serenity-js/serenity-js/compare/v2.33.7...v2.33.8) (2022-05-07)
412
+
413
+ **Note:** Version bump only for package @serenity-js/assertions
414
+
415
+
416
+
417
+
418
+
419
+ ## [2.33.7](https://github.com/serenity-js/serenity-js/compare/v2.33.6...v2.33.7) (2022-05-05)
420
+
421
+ **Note:** Version bump only for package @serenity-js/assertions
422
+
423
+
424
+
425
+
426
+
427
+ ## [2.33.6](https://github.com/serenity-js/serenity-js/compare/v2.33.5...v2.33.6) (2022-04-15)
428
+
429
+ **Note:** Version bump only for package @serenity-js/assertions
430
+
431
+
432
+
433
+
434
+
435
+ ## [2.33.5](https://github.com/serenity-js/serenity-js/compare/v2.33.4...v2.33.5) (2022-04-08)
436
+
437
+ **Note:** Version bump only for package @serenity-js/assertions
438
+
439
+
440
+
35
441
 
36
442
 
443
+ ## [2.33.4](https://github.com/serenity-js/serenity-js/compare/v2.33.3...v2.33.4) (2022-03-29)
444
+
445
+ **Note:** Version bump only for package @serenity-js/assertions
446
+
447
+
448
+
449
+
450
+
451
+ ## [2.33.3](https://github.com/serenity-js/serenity-js/compare/v2.33.2...v2.33.3) (2022-03-19)
452
+
453
+ **Note:** Version bump only for package @serenity-js/assertions
454
+
455
+
456
+
457
+
458
+
459
+ ## [2.33.2](https://github.com/serenity-js/serenity-js/compare/v2.33.1...v2.33.2) (2022-02-23)
460
+
461
+ **Note:** Version bump only for package @serenity-js/assertions
462
+
463
+
464
+
465
+
466
+
467
+ ## [2.33.1](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v2.33.1) (2022-02-10)
468
+
469
+
470
+ ### Bug Fixes
471
+
472
+ * **deps:** update dependency tiny-types to ^1.17.0 ([7b7d6fd](https://github.com/serenity-js/serenity-js/commit/7b7d6fda08f5db7199d8608ff4cf1389a6e84d3c))
473
+
474
+
475
+
476
+
477
+
478
+ # [2.33.0](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v2.33.0) (2022-02-03)
479
+
480
+ **Note:** Version bump only for package @serenity-js/assertions
481
+
482
+
483
+
484
+
485
+
486
+ ## [2.32.7](https://github.com/serenity-js/serenity-js/compare/v2.32.6...v2.32.7) (2022-01-10)
487
+
488
+ **Note:** Version bump only for package @serenity-js/assertions
489
+
490
+
491
+
492
+
493
+
494
+ ## [2.32.6](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v2.32.6) (2022-01-10)
495
+
496
+ **Note:** Version bump only for package @serenity-js/assertions
37
497
 
38
498
 
39
499
  ## [2.32.5](https://github.com/serenity-js/serenity-js/compare/v2.32.4...v2.32.5) (2021-12-08)
package/README.md CHANGED
@@ -8,7 +8,7 @@ and [API docs](https://serenity-js.org/modules/assertions), and follow [@Serenit
8
8
 
9
9
  ### Learning Serenity/JS
10
10
 
11
- To learn more about Serenity/JS, check out the video below, read the [tutorial](https://serenity-js.org/handbook/thinking-in-serenity-js/index.html), review the [examples](https://github.com/serenity-js/serenity-js/tree/master/examples), and create your own test suite with [Serenity/JS template projects](https://github.com/serenity-js).
11
+ To learn more about Serenity/JS, check out the video below, read the [tutorial](https://serenity-js.org/handbook/thinking-in-serenity-js/index.html), review the [examples](https://github.com/serenity-js/serenity-js/tree/main/examples), and create your own test suite with [Serenity/JS template projects](https://github.com/serenity-js).
12
12
 
13
13
  If you have any questions, join us on [Serenity/JS Community Chat](https://gitter.im/serenity-js/Lobby).
14
14
 
package/lib/Ensure.d.ts CHANGED
@@ -52,7 +52,7 @@ export declare class Ensure<Actual> extends Interaction {
52
52
  *
53
53
  * @returns {Ensure<A>}
54
54
  */
55
- static that<A>(actual: Answerable<A>, expectation: Expectation<any, A>): Ensure<A>;
55
+ static that<A>(actual: Answerable<A>, expectation: Expectation<A>): Ensure<A>;
56
56
  /**
57
57
  * @param {@serenity-js/core/lib/screenplay~Answerable<T>} actual
58
58
  * @param {@serenity-js/core/lib/screenplay/questions~Expectation<T>} expectation
package/lib/Ensure.js CHANGED
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Ensure = void 0;
4
4
  const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
6
5
  const inspected_1 = require("@serenity-js/core/lib/io/inspected");
7
6
  const model_1 = require("@serenity-js/core/lib/model");
8
7
  const tiny_types_1 = require("tiny-types");
@@ -82,19 +81,17 @@ class Ensure extends core_1.Interaction {
82
81
  * @see {@link @serenity-js/core/lib/screenplay/actor~CollectsArtifacts}
83
82
  * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
84
83
  */
85
- performAs(actor) {
86
- return Promise.all([
87
- actor.answer(this.actual),
88
- actor.answer(this.expectation),
89
- ]).then(([actual, expectation]) => expectation(actual).then(outcome => (0, tiny_types_1.match)(outcome)
84
+ async performAs(actor) {
85
+ const outcome = await actor.answer(this.expectation.isMetFor(this.actual));
86
+ return (0, tiny_types_1.match)(outcome)
90
87
  .when(core_1.ExpectationNotMet, o => {
91
88
  actor.collect(this.artifactFrom(o.expected, o.actual), new model_1.Name(`Assertion Report`));
92
89
  throw this.errorForOutcome(o);
93
90
  })
94
91
  .when(core_1.ExpectationMet, _ => void 0)
95
92
  .else(o => {
96
- throw new core_1.LogicError((0, io_1.formatted) `An Expectation should return an instance of an ExpectationOutcome, not ${o}`);
97
- })));
93
+ throw new core_1.LogicError((0, core_1.f) `Expectation#isMetFor(actual) should return an instance of an ExpectationOutcome, not ${o}`);
94
+ });
98
95
  }
99
96
  /**
100
97
  * @desc
@@ -103,7 +100,7 @@ class Ensure extends core_1.Interaction {
103
100
  * @returns {string}
104
101
  */
105
102
  toString() {
106
- return (0, io_1.formatted) `#actor ensures that ${this.actual} does ${this.expectation}`;
103
+ return (0, core_1.d) `#actor ensures that ${this.actual} does ${this.expectation}`;
107
104
  }
108
105
  /**
109
106
  * @desc
@@ -143,7 +140,7 @@ class Ensure extends core_1.Interaction {
143
140
  * @protected
144
141
  */
145
142
  asAssertionError(outcome) {
146
- return new core_1.AssertionError(`Expected ${(0, io_1.formatted) `${this.actual}`} to ${outcome.message}`, outcome.expected, outcome.actual);
143
+ return new core_1.AssertionError(`Expected ${(0, core_1.d) `${this.actual}`} to ${outcome.message}`, outcome.expected, outcome.actual);
147
144
  }
148
145
  artifactFrom(expected, actual) {
149
146
  return model_1.AssertionReport.fromJSON({
package/lib/Ensure.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Ensure.js","sourceRoot":"","sources":["../src/Ensure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Ensure.js","sourceRoot":"","sources":["../src/Ensure.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { Expectation } from '@serenity-js/core';
2
- export declare function and<Actual>(...expectations: Array<Expectation<any, Actual>>): Expectation<any, Actual>;
2
+ export declare function and<Actual>(...expectations: Array<Expectation<Actual>>): Expectation<Actual>;
@@ -12,13 +12,13 @@ exports.and = and;
12
12
  */
13
13
  class And extends core_1.Expectation {
14
14
  constructor(expectations) {
15
- super(expectations.map(assertion => assertion.toString()).join(' and '));
15
+ super(expectations.map(expectation => expectation.toString()).join(And.Separator), (actor, actual) => {
16
+ return expectations.reduce((previous, current) => previous.then(outcome => (0, tiny_types_1.match)(outcome)
17
+ .when(core_1.ExpectationNotMet, o => o)
18
+ .else(_ => actor.answer(current.isMetFor(actual)))), Promise.resolve(void 0));
19
+ });
16
20
  this.expectations = expectations;
17
21
  }
18
- answeredBy(actor) {
19
- return (actual) => this.expectations.reduce((previous, current) => previous.then(outcome => (0, tiny_types_1.match)(outcome)
20
- .when(core_1.ExpectationNotMet, o => o)
21
- .else(_ => current.answeredBy(actor)(actual))), Promise.resolve(void 0));
22
- }
23
22
  }
23
+ And.Separator = ' and ';
24
24
  //# sourceMappingURL=and.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"and.js","sourceRoot":"","sources":["../../src/expectations/and.ts"],"names":[],"mappings":";;;AAAA,4CAAyG;AACzG,2CAAmC;AAEnC,SAAgB,GAAG,CAAS,GAAG,YAA6C;IACxE,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC;AAFD,kBAEC;AAED;;GAEG;AACH,MAAM,GAAY,SAAQ,kBAAwB;IAC9C,YAA6B,YAA6C;QACtE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QADhD,iBAAY,GAAZ,YAAY,CAAiC;IAE1E,CAAC;IAED,UAAU,CAAC,KAAuB;QAE9B,OAAO,CAAC,MAAW,EAAE,EAAE,CACnB,IAAI,CAAC,YAAY,CAAC,MAAM,CACpB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACpB,IAAA,kBAAK,EAAC,OAAO,CAAC;aACT,IAAI,CAAC,wBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CACpD,EACL,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC1B,CAAC;IACV,CAAC;CACJ"}
1
+ {"version":3,"file":"and.js","sourceRoot":"","sources":["../../src/expectations/and.ts"],"names":[],"mappings":";;;AAAA,4CAAiG;AACjG,2CAAmC;AAEnC,SAAgB,GAAG,CAAS,GAAG,YAAwC;IACnE,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC;AAFD,kBAEC;AAED;;GAEG;AACH,MAAM,GAAY,SAAQ,kBAAmB;IAGzC,YAA6B,YAAwC;QACjE,KAAK,CACD,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAC3E,CAAC,KAAuB,EAAE,MAA0B,EAAE,EAAE;YACpD,OAAO,YAAY,CAAC,MAAM,CACtB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACpB,IAAA,kBAAK,EAAC,OAAO,CAAC;iBACT,IAAI,CAAC,wBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CACzD,EACL,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC1B,CAAC;QACN,CAAC,CACJ,CAAC;QAduB,iBAAY,GAAZ,YAAY,CAA4B;IAerE,CAAC;;AAjBuB,aAAS,GAAG,OAAO,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { Answerable, Expectation } from '@serenity-js/core';
2
- export declare function contain<Item>(expected: Answerable<Item>): Expectation<Item, Item[]>;
2
+ export declare function contain<Item>(expected: Answerable<Item>): Expectation<Item[]>;
@@ -1,2 +1,2 @@
1
1
  import { Expectation } from '@serenity-js/core';
2
- export declare function containAtLeastOneItemThat<Actual>(expectation: Expectation<any, Actual>): Expectation<any, Actual[]>;
2
+ export declare function containAtLeastOneItemThat<Actual>(expectation: Expectation<Actual>): Expectation<Actual[]>;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.containAtLeastOneItemThat = void 0;
4
4
  const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
6
5
  function containAtLeastOneItemThat(expectation) {
7
6
  return new ContainAtLeastOneItemThatMeetsExpectation(expectation);
8
7
  }
@@ -12,16 +11,24 @@ exports.containAtLeastOneItemThat = containAtLeastOneItemThat;
12
11
  */
13
12
  class ContainAtLeastOneItemThatMeetsExpectation extends core_1.Expectation {
14
13
  constructor(expectation) {
15
- super((0, io_1.formatted) `contain at least one item that does ${expectation}`);
14
+ super(ContainAtLeastOneItemThatMeetsExpectation.descriptionFor(expectation), async (actor, actual) => {
15
+ const items = await actor.answer(actual);
16
+ if (!items || items.length === 0) {
17
+ return new core_1.ExpectationNotMet(ContainAtLeastOneItemThatMeetsExpectation.descriptionFor(expectation), undefined, items);
18
+ }
19
+ let outcome;
20
+ for (const item of items) {
21
+ outcome = await actor.answer(expectation.isMetFor(item));
22
+ if (outcome instanceof core_1.ExpectationMet) {
23
+ return new core_1.ExpectationMet(ContainAtLeastOneItemThatMeetsExpectation.descriptionFor(expectation), outcome.expected, items);
24
+ }
25
+ }
26
+ return new core_1.ExpectationNotMet(ContainAtLeastOneItemThatMeetsExpectation.descriptionFor(expectation), outcome.expected, items);
27
+ });
16
28
  this.expectation = expectation;
17
29
  }
18
- answeredBy(actor) {
19
- return (actual) => actual.length === 0
20
- ? Promise.resolve(new core_1.ExpectationNotMet(this.toString(), undefined, actual))
21
- : Promise.all(actual.map(item => this.expectation.answeredBy(actor)(item)))
22
- .then(results => results.some(result => result instanceof core_1.ExpectationMet)
23
- ? new core_1.ExpectationMet(this.toString(), results[0].expected, actual)
24
- : new core_1.ExpectationNotMet(this.toString(), results[0].expected, actual));
30
+ static descriptionFor(expectation) {
31
+ return (0, core_1.d) `contain at least one item that does ${expectation}`;
25
32
  }
26
33
  }
27
34
  //# sourceMappingURL=containAtLeastOneItemThat.js.map