@serenity-js/core 3.0.0-rc.33 → 3.0.0-rc.34

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 (71) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/config/ClassDescription.d.ts +1 -1
  3. package/lib/config/SerenityConfig.d.ts +1 -1
  4. package/lib/config/SerenityConfig.js +1 -1
  5. package/lib/errors/ListItemNotFoundError.d.ts +20 -0
  6. package/lib/errors/ListItemNotFoundError.d.ts.map +1 -0
  7. package/lib/errors/ListItemNotFoundError.js +30 -0
  8. package/lib/errors/ListItemNotFoundError.js.map +1 -0
  9. package/lib/errors/index.d.ts +1 -0
  10. package/lib/errors/index.d.ts.map +1 -1
  11. package/lib/errors/index.js +3 -1
  12. package/lib/errors/index.js.map +1 -1
  13. package/lib/io/format.d.ts +3 -3
  14. package/lib/io/format.d.ts.map +1 -1
  15. package/lib/io/format.js +3 -3
  16. package/lib/io/format.js.map +1 -1
  17. package/lib/screenplay/Ability.d.ts +1 -1
  18. package/lib/screenplay/Activity.d.ts +1 -1
  19. package/lib/screenplay/Activity.js +1 -1
  20. package/lib/screenplay/Answerable.d.ts +1 -1
  21. package/lib/screenplay/Answered.d.ts +1 -1
  22. package/lib/screenplay/Interaction.d.ts +1 -1
  23. package/lib/screenplay/Interaction.js +1 -1
  24. package/lib/screenplay/Optional.d.ts +1 -1
  25. package/lib/screenplay/Question.d.ts +3 -3
  26. package/lib/screenplay/Question.js +1 -1
  27. package/lib/screenplay/RecursivelyAnswered.d.ts +1 -1
  28. package/lib/screenplay/Task.d.ts +1 -1
  29. package/lib/screenplay/Task.js +1 -1
  30. package/lib/screenplay/WithAnswerableProperties.d.ts +1 -1
  31. package/lib/screenplay/actor/Actor.d.ts +1 -1
  32. package/lib/screenplay/actor/Actor.js +1 -1
  33. package/lib/screenplay/interactions/Wait.js +12 -5
  34. package/lib/screenplay/interactions/Wait.js.map +1 -1
  35. package/lib/screenplay/questions/List.js +3 -3
  36. package/lib/screenplay/questions/List.js.map +1 -1
  37. package/lib/screenplay/questions/MetaQuestion.d.ts +1 -1
  38. package/lib/screenplay/questions/q.d.ts +1 -1
  39. package/lib/screenplay/questions/q.js +1 -1
  40. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts +3 -2
  41. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.d.ts.map +1 -1
  42. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js +3 -2
  43. package/lib/stage/crew/artifact-archiver/ArtifactArchiver.js.map +1 -1
  44. package/lib/stage/queues/DomainEventQueue.d.ts +1 -1
  45. package/lib/stage/queues/DomainEventQueue.js +1 -1
  46. package/lib/stage/queues/DomainEventQueues.d.ts +1 -1
  47. package/lib/stage/queues/DomainEventQueues.js +1 -1
  48. package/package.json +5 -5
  49. package/src/config/ClassDescription.ts +1 -1
  50. package/src/config/SerenityConfig.ts +1 -1
  51. package/src/errors/ListItemNotFoundError.ts +35 -0
  52. package/src/errors/index.ts +1 -0
  53. package/src/io/format.ts +3 -3
  54. package/src/screenplay/Ability.ts +1 -1
  55. package/src/screenplay/Activity.ts +1 -1
  56. package/src/screenplay/Answerable.ts +1 -1
  57. package/src/screenplay/Answered.ts +1 -1
  58. package/src/screenplay/Interaction.ts +1 -1
  59. package/src/screenplay/Optional.ts +1 -1
  60. package/src/screenplay/Question.ts +3 -3
  61. package/src/screenplay/RecursivelyAnswered.ts +1 -1
  62. package/src/screenplay/Task.ts +1 -1
  63. package/src/screenplay/WithAnswerableProperties.ts +1 -1
  64. package/src/screenplay/actor/Actor.ts +1 -1
  65. package/src/screenplay/interactions/Wait.ts +21 -13
  66. package/src/screenplay/questions/List.ts +4 -4
  67. package/src/screenplay/questions/MetaQuestion.ts +1 -1
  68. package/src/screenplay/questions/q.ts +1 -1
  69. package/src/stage/crew/artifact-archiver/ArtifactArchiver.ts +3 -2
  70. package/src/stage/queues/DomainEventQueue.ts +1 -1
  71. package/src/stage/queues/DomainEventQueues.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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.34](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.33...v3.0.0-rc.34) (2022-11-21)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **core:** interaction to Wait should fail after the timeout ([5403394](https://github.com/serenity-js/serenity-js/commit/54033946873e20a18ad1076c77f841b3856f2478)), closes [#1339](https://github.com/serenity-js/serenity-js/issues/1339)
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.0.0-rc.33](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.32...v3.0.0-rc.33) (2022-11-07)
7
18
 
8
19
 
@@ -47,7 +47,7 @@
47
47
  * For example, `./my-reporter:MyReporter` would be interpreted as a request to load the `MyReporter` type from `./my-reporter` file, located
48
48
  * relative to the [working directory](https://nodejs.org/api/process.html#processcwd) of the current Node.js process.
49
49
  *
50
- * @group Configuration
50
+ * @group Serenity
51
51
  */
52
52
  export declare type ClassDescription = string | // e.g. '@serenity-js/core:StreamReporter'
53
53
  [
@@ -13,7 +13,7 @@ import { ClassDescription } from './ClassDescription';
13
13
  * - {@apilink ClassDescription}
14
14
  * - {@apilink Stage.waitForNextCue}
15
15
  *
16
- * @group Configuration
16
+ * @group Serenity
17
17
  */
18
18
  export declare abstract class SerenityConfig {
19
19
  /**
@@ -12,7 +12,7 @@ exports.SerenityConfig = void 0;
12
12
  * - {@apilink ClassDescription}
13
13
  * - {@apilink Stage.waitForNextCue}
14
14
  *
15
- * @group Configuration
15
+ * @group Serenity
16
16
  */
17
17
  class SerenityConfig {
18
18
  }
@@ -0,0 +1,20 @@
1
+ import { JSONObject } from 'tiny-types';
2
+ import { RuntimeError } from './RuntimeError';
3
+ /**
4
+ * Thrown to indicate that an {@apilink Interaction}, a {@apilink Task} or a test scenario
5
+ * can't be executed due to no items are found in a list.
6
+ *
7
+ * For example, it's not possible to get the first() or the last() item of a list
8
+ * if the list is empty.
9
+ *
10
+ * @group Errors
11
+ */
12
+ export declare class ListItemNotFoundError extends RuntimeError {
13
+ static fromJSON(serialised: JSONObject): ListItemNotFoundError;
14
+ /**
15
+ * @param message - Human-readable description of the error
16
+ * @param [cause] - The root cause of this {@apilink ListItemNotFoundError}, if any
17
+ */
18
+ constructor(message: string, cause?: Error);
19
+ }
20
+ //# sourceMappingURL=ListItemNotFoundError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItemNotFoundError.d.ts","sourceRoot":"","sources":["../../src/errors/ListItemNotFoundError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IAEnD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,qBAAqB;IAW9D;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAG7C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListItemNotFoundError = void 0;
4
+ const ErrorSerialiser_1 = require("./ErrorSerialiser");
5
+ const RuntimeError_1 = require("./RuntimeError");
6
+ /**
7
+ * Thrown to indicate that an {@apilink Interaction}, a {@apilink Task} or a test scenario
8
+ * can't be executed due to no items are found in a list.
9
+ *
10
+ * For example, it's not possible to get the first() or the last() item of a list
11
+ * if the list is empty.
12
+ *
13
+ * @group Errors
14
+ */
15
+ class ListItemNotFoundError extends RuntimeError_1.RuntimeError {
16
+ static fromJSON(serialised) {
17
+ const error = new ListItemNotFoundError(serialised.message, ErrorSerialiser_1.ErrorSerialiser.deserialise(serialised.cause));
18
+ error.stack = serialised.stack;
19
+ return error;
20
+ }
21
+ /**
22
+ * @param message - Human-readable description of the error
23
+ * @param [cause] - The root cause of this {@apilink ListItemNotFoundError}, if any
24
+ */
25
+ constructor(message, cause) {
26
+ super(ListItemNotFoundError, message, cause);
27
+ }
28
+ }
29
+ exports.ListItemNotFoundError = ListItemNotFoundError;
30
+ //# sourceMappingURL=ListItemNotFoundError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItemNotFoundError.js","sourceRoot":"","sources":["../../src/errors/ListItemNotFoundError.ts"],"names":[],"mappings":";;;AAEA,uDAAoD;AACpD,iDAA8C;AAE9C;;;;;;;;GAQG;AACH,MAAa,qBAAsB,SAAQ,2BAAY;IAEnD,MAAM,CAAC,QAAQ,CAAC,UAAsB;QAClC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CACnC,UAAU,CAAC,OAAiB,EAC5B,iCAAe,CAAC,WAAW,CAAC,UAAU,CAAC,KAA2B,CAAC,CACtE,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAe,CAAC;QAEzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,YAAY,OAAe,EAAE,KAAa;QACtC,KAAK,CAAC,qBAAqB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ;AApBD,sDAoBC"}
@@ -3,6 +3,7 @@ export { ConfigurationError } from './ConfigurationError';
3
3
  export { ErrorSerialiser } from './ErrorSerialiser';
4
4
  export { ErrorStackParser } from './ErrorStackParser';
5
5
  export { ImplementationPendingError } from './ImplementationPendingError';
6
+ export { ListItemNotFoundError } from './ListItemNotFoundError';
6
7
  export { LogicError } from './LogicError';
7
8
  export { RuntimeError } from './RuntimeError';
8
9
  export { TestCompromisedError } from './TestCompromisedError';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnknownError = exports.TimeoutExpiredError = exports.TestCompromisedError = exports.RuntimeError = exports.LogicError = exports.ImplementationPendingError = exports.ErrorStackParser = exports.ErrorSerialiser = exports.ConfigurationError = exports.AssertionError = void 0;
3
+ exports.UnknownError = exports.TimeoutExpiredError = exports.TestCompromisedError = exports.RuntimeError = exports.LogicError = exports.ListItemNotFoundError = exports.ImplementationPendingError = exports.ErrorStackParser = exports.ErrorSerialiser = exports.ConfigurationError = exports.AssertionError = void 0;
4
4
  const AssertionError_1 = require("./AssertionError");
5
5
  const ConfigurationError_1 = require("./ConfigurationError");
6
6
  const ErrorSerialiser_1 = require("./ErrorSerialiser");
@@ -20,6 +20,8 @@ var ErrorStackParser_1 = require("./ErrorStackParser");
20
20
  Object.defineProperty(exports, "ErrorStackParser", { enumerable: true, get: function () { return ErrorStackParser_1.ErrorStackParser; } });
21
21
  var ImplementationPendingError_2 = require("./ImplementationPendingError");
22
22
  Object.defineProperty(exports, "ImplementationPendingError", { enumerable: true, get: function () { return ImplementationPendingError_2.ImplementationPendingError; } });
23
+ var ListItemNotFoundError_1 = require("./ListItemNotFoundError");
24
+ Object.defineProperty(exports, "ListItemNotFoundError", { enumerable: true, get: function () { return ListItemNotFoundError_1.ListItemNotFoundError; } });
23
25
  var LogicError_2 = require("./LogicError");
24
26
  Object.defineProperty(exports, "LogicError", { enumerable: true, get: function () { return LogicError_2.LogicError; } });
25
27
  var RuntimeError_1 = require("./RuntimeError");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,6DAA0D;AAC1D,uDAAoD;AACpD,6EAA0E;AAC1E,6CAA0C;AAC1C,iEAA8D;AAC9D,+DAA4D;AAC5D,iDAA8C;AAE9C,iCAAe,CAAC,kBAAkB,CAC9B,+BAAc,EACd,uCAAkB,EAClB,uDAA0B,EAC1B,uBAAU,EACV,2CAAoB,EACpB,yCAAmB,EACnB,2BAAY,CACf,CAAC;AAEF,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,6DAA0D;AAC1D,uDAAoD;AACpD,6EAA0E;AAC1E,6CAA0C;AAC1C,iEAA8D;AAC9D,+DAA4D;AAC5D,iDAA8C;AAE9C,iCAAe,CAAC,kBAAkB,CAC9B,+BAAc,EACd,uCAAkB,EAClB,uDAA0B,EAC1B,uBAAU,EACV,2CAAoB,EACpB,yCAAmB,EACnB,2BAAY,CACf,CAAC;AAEF,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2EAA0E;AAAjE,wIAAA,0BAA0B,OAAA;AACnC,iEAAgE;AAAvD,8HAAA,qBAAqB,OAAA;AAC9B,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,+CAA8C;AAArC,4GAAA,YAAY,OAAA"}
@@ -54,13 +54,13 @@ import { Answerable } from '../screenplay';
54
54
  * @param config
55
55
  * `markQuestions`: boolean - if set to true, descriptions of questions passed in as arguments will be surrounded with double angled brackets, i.e. `<<description>>`
56
56
  *
57
- * @group Answerables
57
+ * @group Questions
58
58
  */
59
59
  export declare function format(config: {
60
60
  markQuestions: boolean;
61
61
  }): (templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>) => string;
62
- /** @group Answerables */
62
+ /** @group Questions */
63
63
  export declare const f: (templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>) => string;
64
- /** @group Answerables */
64
+ /** @group Questions */
65
65
  export declare const d: (templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>) => string;
66
66
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/io/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAS/I;AAED,yBAAyB;AACzB,eAAO,MAAM,CAAC,cAZ0D,oBAAoB,mBAAmB,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,MAY1F,CAAC;AAEjD,yBAAyB;AACzB,eAAO,MAAM,CAAC,cAf0D,oBAAoB,mBAAmB,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,MAezF,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/io/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,CAAC,SAAS,EAAE,oBAAoB,EAAE,GAAG,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAS/I;AAED,uBAAuB;AACvB,eAAO,MAAM,CAAC,cAZ0D,oBAAoB,mBAAmB,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,MAY1F,CAAC;AAEjD,uBAAuB;AACvB,eAAO,MAAM,CAAC,cAf0D,oBAAoB,mBAAmB,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,MAezF,CAAC"}
package/lib/io/format.js CHANGED
@@ -57,7 +57,7 @@ const inspected_1 = require("./inspected");
57
57
  * @param config
58
58
  * `markQuestions`: boolean - if set to true, descriptions of questions passed in as arguments will be surrounded with double angled brackets, i.e. `<<description>>`
59
59
  *
60
- * @group Answerables
60
+ * @group Questions
61
61
  */
62
62
  function format(config) {
63
63
  return (templates, ...placeholders) => {
@@ -70,8 +70,8 @@ function format(config) {
70
70
  };
71
71
  }
72
72
  exports.format = format;
73
- /** @group Answerables */
73
+ /** @group Questions */
74
74
  exports.f = format({ markQuestions: true });
75
- /** @group Answerables */
75
+ /** @group Questions */
76
76
  exports.d = format({ markQuestions: false });
77
77
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/io/format.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,SAAgB,MAAM,CAAC,MAAkC;IACrD,OAAO,CAAC,SAA+B,EAAE,GAAG,YAAoC,EAAU,EAAE;QACxF,OAAO,SAAS;aACX,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM;YACzC,CAAC,CAAC,CAAE,QAAQ,EAAE,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAE;YACjG,CAAC,CAAC,CAAE,QAAQ,CAAE,CAAC;aAClB,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAA;AACL,CAAC;AATD,wBASC;AAED,yBAAyB;AACZ,QAAA,CAAC,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAEjD,yBAAyB;AACZ,QAAA,CAAC,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/io/format.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,SAAgB,MAAM,CAAC,MAAkC;IACrD,OAAO,CAAC,SAA+B,EAAE,GAAG,YAAoC,EAAU,EAAE;QACxF,OAAO,SAAS;aACX,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM;YACzC,CAAC,CAAC,CAAE,QAAQ,EAAE,IAAA,qBAAS,EAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAE;YACjG,CAAC,CAAC,CAAE,QAAQ,CAAE,CAAC;aAClB,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAA;AACL,CAAC;AATD,wBASC;AAED,uBAAuB;AACV,QAAA,CAAC,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAEjD,uBAAuB;AACV,QAAA,CAAC,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC"}
@@ -157,7 +157,7 @@
157
157
  * - {@apilink CallAnApi}
158
158
  * - {@apilink TakeNotes}
159
159
  *
160
- * @group Screenplay Pattern
160
+ * @group Abilities
161
161
  */
162
162
  export interface Ability {
163
163
  }
@@ -9,7 +9,7 @@ import { AnswersQuestions, PerformsActivities, UsesAbilities } from './actor';
9
9
  * - {@apilink PerformsActivities}
10
10
  * - [Command design pattern on Wikipedia](https://en.wikipedia.org/wiki/Command_pattern)
11
11
  *
12
- * @group Screenplay Pattern
12
+ * @group Activities
13
13
  */
14
14
  export declare abstract class Activity {
15
15
  #private;
@@ -28,7 +28,7 @@ const io_1 = require("../io");
28
28
  * - {@apilink PerformsActivities}
29
29
  * - [Command design pattern on Wikipedia](https://en.wikipedia.org/wiki/Command_pattern)
30
30
  *
31
- * @group Screenplay Pattern
31
+ * @group Activities
32
32
  */
33
33
  class Activity {
34
34
  constructor(description, location = Activity.callerLocation(5)) {
@@ -3,7 +3,7 @@ import { Question } from './Question';
3
3
  * A union type that provides a convenient way to represent any value
4
4
  * that can be resolved by {@apilink Actor.answer}.
5
5
  *
6
- * @group Answerables
6
+ * @group Questions
7
7
  */
8
8
  export declare type Answerable<T> = Question<Promise<T>> | Question<T> | Promise<T> | T;
9
9
  //# sourceMappingURL=Answerable.d.ts.map
@@ -7,7 +7,7 @@ import { Question } from './Question';
7
7
  * Answered<Answerable<T>> === T
8
8
  * ```
9
9
  *
10
- * @group Answerables
10
+ * @group Questions
11
11
  */
12
12
  export declare type Answered<T> = T extends null | undefined ? T : T extends Question<Promise<infer A>> | Question<infer A> | Promise<infer A> ? Awaited<A> : T;
13
13
  //# sourceMappingURL=Answered.d.ts.map
@@ -40,7 +40,7 @@ import { AnswersQuestions, CollectsArtifacts, UsesAbilities } from './actor';
40
40
  * )
41
41
  * ```
42
42
  *
43
- * @group Screenplay Pattern
43
+ * @group Activities
44
44
  */
45
45
  export declare abstract class Interaction extends Activity {
46
46
  /**
@@ -42,7 +42,7 @@ const Activity_1 = require("./Activity");
42
42
  * )
43
43
  * ```
44
44
  *
45
- * @group Screenplay Pattern
45
+ * @group Activities
46
46
  */
47
47
  class Interaction extends Activity_1.Activity {
48
48
  /**
@@ -14,7 +14,7 @@ import { Answerable } from './Answerable';
14
14
  * and if all the links of the property chain leading to the entry of interest exist too
15
15
  * (so `books` is present, and so is `books[0]`, `books[0].author`, `books[0].author.name`).
16
16
  *
17
- * @group Answerables
17
+ * @group Questions
18
18
  */
19
19
  export interface Optional {
20
20
  /**
@@ -94,7 +94,7 @@ import { WithAnswerableProperties } from './WithAnswerableProperties';
94
94
  * - {@apilink Ability}
95
95
  * - {@apilink QuestionAdapter}
96
96
  *
97
- * @group Screenplay Pattern
97
+ * @group Questions
98
98
  */
99
99
  export declare abstract class Question<T> {
100
100
  /**
@@ -223,7 +223,7 @@ declare global {
223
223
  * - both methods and fields of the wrapped object can be used as {@apilink Question|questions} or {@apilink Interactions|interactions}
224
224
  * - method parameters of the wrapped object will accept {@apilink Answerable|Answerable<T>}
225
225
  *
226
- * @group Answerables
226
+ * @group Questions
227
227
  */
228
228
  export declare type QuestionAdapterFieldDecorator<Original_Type> = {
229
229
  [Field in keyof Omit<Original_Type, keyof QuestionStatement<Original_Type>>]: Original_Type[Field] extends (...args: infer OriginalParameters) => infer OriginalMethodResult ? (...args: {
@@ -236,7 +236,7 @@ export declare type QuestionAdapterFieldDecorator<Original_Type> = {
236
236
  * {@apilink QuestionAdapter} proxies the methods and fields of the wrapped object recursively,
237
237
  * allowing them to be used as either a {@apilink Question} or an {@apilink Interaction}.
238
238
  *
239
- * @group Answerables
239
+ * @group Questions
240
240
  */
241
241
  export declare type QuestionAdapter<T> = Question<Promise<T>> & Interaction & {
242
242
  isPresent(): Question<Promise<boolean>>;
@@ -95,7 +95,7 @@ const Interaction_1 = require("./Interaction");
95
95
  * - {@apilink Ability}
96
96
  * - {@apilink QuestionAdapter}
97
97
  *
98
- * @group Screenplay Pattern
98
+ * @group Questions
99
99
  */
100
100
  class Question {
101
101
  /**
@@ -32,7 +32,7 @@ import { Question } from './Question';
32
32
  * // RequestConfiguration === RecursivelyAnswered<WithAnswerableProperties<RequestConfiguration>>
33
33
  * ```
34
34
  *
35
- * @group Answerables
35
+ * @group Questions
36
36
  */
37
37
  export declare type RecursivelyAnswered<T> = T extends null | undefined ? T : T extends Question<Promise<infer A>> | Question<infer A> | Promise<infer A> ? RecursivelyAnswered<Awaited<A>> : T extends object ? {
38
38
  [K in keyof T]: RecursivelyAnswered<T[K]>;
@@ -51,7 +51,7 @@ import { PerformsActivities } from './actor';
51
51
  * - {@apilink Activity}
52
52
  * - {@apilink Actor}
53
53
  *
54
- * @group Screenplay Pattern
54
+ * @group Activities
55
55
  */
56
56
  export declare abstract class Task extends Activity {
57
57
  /**
@@ -54,7 +54,7 @@ const Activity_1 = require("./Activity");
54
54
  * - {@apilink Activity}
55
55
  * - {@apilink Actor}
56
56
  *
57
- * @group Screenplay Pattern
57
+ * @group Activities
58
58
  */
59
59
  class Task extends Activity_1.Activity {
60
60
  /**
@@ -25,7 +25,7 @@ import { Question } from './Question';
25
25
  * const answer: RequestConfiguration = await actorCalled('Annie').answer(question);
26
26
  * ```
27
27
  *
28
- * @group Answerables
28
+ * @group Questions
29
29
  */
30
30
  export declare type WithAnswerableProperties<T> = T extends null | undefined ? T : T extends Question<Promise<infer A>> | Question<infer A> | Promise<infer A> ? Answerable<A> : T extends object ? {
31
31
  [K in keyof T]: WithAnswerableProperties<T[K]>;
@@ -16,7 +16,7 @@ import { UsesAbilities } from './UsesAbilities';
16
16
  * - {@apilink Cast}
17
17
  * - {@apilink Stage}
18
18
  *
19
- * @group Screenplay Pattern
19
+ * @group Actors
20
20
  */
21
21
  export declare class Actor implements PerformsActivities, UsesAbilities, CanHaveAbilities<Actor>, AnswersQuestions, CollectsArtifacts {
22
22
  readonly name: string;
@@ -15,7 +15,7 @@ const Question_1 = require("../Question");
15
15
  * - {@apilink Cast}
16
16
  * - {@apilink Stage}
17
17
  *
18
- * @group Screenplay Pattern
18
+ * @group Actors
19
19
  */
20
20
  class Actor {
21
21
  // todo: Actor should have execution strategies
@@ -278,20 +278,27 @@ function waitUntil(expectation, pollingInterval) {
278
278
  let delay;
279
279
  let pollingActive = false;
280
280
  async function poll() {
281
+ async function nextPollingInterval() {
282
+ if (pollingActive) {
283
+ delay = waitFor(pollingInterval);
284
+ await delay.start();
285
+ await poll();
286
+ }
287
+ }
281
288
  try {
282
289
  const expectationIsMet = await expectation();
283
290
  if (expectationIsMet) {
284
291
  delay === null || delay === void 0 ? void 0 : delay.stop();
285
292
  return;
286
293
  }
287
- if (pollingActive) {
288
- delay = waitFor(pollingInterval);
289
- await delay.start();
290
- await poll();
291
- }
294
+ await nextPollingInterval();
292
295
  }
293
296
  catch (error) {
294
297
  delay === null || delay === void 0 ? void 0 : delay.stop();
298
+ if (error instanceof errors_1.ListItemNotFoundError) {
299
+ await nextPollingInterval();
300
+ return;
301
+ }
295
302
  throw error;
296
303
  }
297
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Wait.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Wait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wait.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Wait.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ class List extends Question_1.Question {
40
40
  return Question_1.Question.about(`the first of ${this.subject}`, async (actor) => {
41
41
  const items = await this.answeredBy(actor);
42
42
  if (items.length === 0) {
43
- throw new errors_1.LogicError((0, io_1.d) `Can't retrieve the first item from a list with 0 items: ${items}`);
43
+ throw new errors_1.ListItemNotFoundError((0, io_1.d) `Can't retrieve the first item from a list with 0 items: ${items}`);
44
44
  }
45
45
  return items[0];
46
46
  });
@@ -49,7 +49,7 @@ class List extends Question_1.Question {
49
49
  return Question_1.Question.about(`the last of ${this.subject}`, async (actor) => {
50
50
  const items = await this.answeredBy(actor);
51
51
  if (items.length === 0) {
52
- throw new errors_1.LogicError((0, io_1.d) `Can't retrieve the last item from a list with 0 items: ${items}`);
52
+ throw new errors_1.ListItemNotFoundError((0, io_1.d) `Can't retrieve the last item from a list with 0 items: ${items}`);
53
53
  }
54
54
  return items[items.length - 1];
55
55
  });
@@ -58,7 +58,7 @@ class List extends Question_1.Question {
58
58
  return Question_1.Question.about(`the ${ordinal(index + 1)} of ${this.subject}`, async (actor) => {
59
59
  const items = await this.answeredBy(actor);
60
60
  if (index < 0 || items.length <= index) {
61
- throw new errors_1.LogicError(`Can't retrieve the ${ordinal(index)} item from a list with ${items.length} items: ` + (0, io_1.d) `${items}`);
61
+ throw new errors_1.ListItemNotFoundError(`Can't retrieve the ${ordinal(index)} item from a list with ${items.length} items: ` + (0, io_1.d) `${items}`);
62
62
  }
63
63
  return items[index];
64
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/screenplay/questions/List.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { Question } from '../Question';
12
12
  * ## Learn more
13
13
  * - {@apilink List}
14
14
  *
15
- * @group Answerables
15
+ * @group Questions
16
16
  */
17
17
  export interface MetaQuestion<Supported_Answerable_Type extends Answerable<any>, Answer> {
18
18
  /**
@@ -57,7 +57,7 @@ import { QuestionAdapter } from '../Question';
57
57
  * - {@apilink Question.describedAs}
58
58
  * - {@apilink QuestionAdapter}
59
59
  *
60
- * @group Answerables
60
+ * @group Questions
61
61
  *
62
62
  * @param templates
63
63
  * @param parameters
@@ -59,7 +59,7 @@ const Question_1 = require("../Question");
59
59
  * - {@apilink Question.describedAs}
60
60
  * - {@apilink QuestionAdapter}
61
61
  *
62
- * @group Answerables
62
+ * @group Questions
63
63
  *
64
64
  * @param templates
65
65
  * @param parameters
@@ -55,11 +55,12 @@ import { StageCrewMember } from '../../StageCrewMember';
55
55
  * ]
56
56
  * // other Serenity/JS config
57
57
  * },
58
- * },
59
- * // other WebdriverIO config
58
+ * // other WebdriverIO config
60
59
  * }
61
60
  * ```
62
61
  *
62
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
63
+ *
63
64
  * @group Stage
64
65
  */
65
66
  export declare class ArtifactArchiver implements StageCrewMember {
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchiver.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"AAGA,OAAO,EAQH,WAAW,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IAkChD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,KAAK,CAAC;IAjClB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe;IAQpE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IAMrE;;;;OAIG;gBAEkB,UAAU,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAKzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA8BlC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,OAAO;IAsBf,OAAO,CAAC,yBAAyB;CAoBpC"}
1
+ {"version":3,"file":"ArtifactArchiver.d.ts","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"AAGA,OAAO,EAQH,WAAW,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IAkChD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,KAAK,CAAC;IAjClB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe;IAQpE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe;IAMrE;;;;OAIG;gBAEkB,UAAU,EAAE,UAAU,EAC/B,KAAK,CAAC,EAAE,KAAK;IAIzB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAKzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IA8BlC,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,OAAO;IAsBf,OAAO,CAAC,yBAAyB;CAoBpC"}
@@ -59,11 +59,12 @@ const Hash_1 = require("./Hash");
59
59
  * ]
60
60
  * // other Serenity/JS config
61
61
  * },
62
- * },
63
- * // other WebdriverIO config
62
+ * // other WebdriverIO config
64
63
  * }
65
64
  * ```
66
65
  *
66
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
67
+ *
67
68
  * @group Stage
68
69
  */
69
70
  class ArtifactArchiver {
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactArchiver.js","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArtifactArchiver.js","sourceRoot":"","sources":["../../../../src/stage/crew/artifact-archiver/ArtifactArchiver.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DomainEvent } from '../../events';
2
2
  import { CorrelationId } from '../../model';
3
3
  /**
4
- * @package
4
+ * @group Stage
5
5
  */
6
6
  export declare class DomainEventQueue {
7
7
  private readonly queue;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DomainEventQueue = void 0;
4
4
  const tiny_types_1 = require("tiny-types");
5
5
  /**
6
- * @package
6
+ * @group Stage
7
7
  */
8
8
  class DomainEventQueue {
9
9
  constructor(...items) {
@@ -2,7 +2,7 @@ import { DomainEvent } from '../../events';
2
2
  import { CorrelationId } from '../../model';
3
3
  import { DomainEventQueue } from './DomainEventQueue';
4
4
  /**
5
- * @package
5
+ * @group Stage
6
6
  */
7
7
  export declare class DomainEventQueues {
8
8
  private readonly queueIndex;
@@ -6,7 +6,7 @@ const events_1 = require("../../events");
6
6
  const format_1 = require("../../io/format");
7
7
  const DomainEventQueue_1 = require("./DomainEventQueue");
8
8
  /**
9
- * @package
9
+ * @group Stage
10
10
  */
11
11
  class DomainEventQueues {
12
12
  constructor() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/core",
3
- "version": "3.0.0-rc.33",
3
+ "version": "3.0.0-rc.34",
4
4
  "description": "Serenity/JS Screenplay, reporting engine and core interfaces.",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -44,15 +44,15 @@
44
44
  "validate-npm-package-name": "^4.0.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@types/chai": "^4.3.3",
47
+ "@types/chai": "^4.3.4",
48
48
  "@types/cuid": "^1.3.1",
49
49
  "@types/diff": "^5.0.2",
50
50
  "@types/filenamify": "^2.0.2",
51
51
  "@types/mocha": "^9.1.1",
52
- "@types/semver": "^7.3.12",
52
+ "@types/semver": "^7.3.13",
53
53
  "@types/validate-npm-package-name": "^4.0.0",
54
54
  "assertion-error-formatter": "^3.0.0",
55
- "memfs": "^3.4.7",
55
+ "memfs": "^3.4.12",
56
56
  "mocha": "^10.0.0",
57
57
  "nyc": "15.1.0",
58
58
  "ts-node": "^10.9.1",
@@ -70,5 +70,5 @@
70
70
  "node": "^14 || ^16 || ^18",
71
71
  "npm": "^6 || ^7 || ^8"
72
72
  },
73
- "gitHead": "e61091eca7bdd3d93dedf14fd26eb3a1f58a3435"
73
+ "gitHead": "5b0ad14a0b673fdb541ec89ac67dc631db562018"
74
74
  }
@@ -47,7 +47,7 @@
47
47
  * For example, `./my-reporter:MyReporter` would be interpreted as a request to load the `MyReporter` type from `./my-reporter` file, located
48
48
  * relative to the [working directory](https://nodejs.org/api/process.html#processcwd) of the current Node.js process.
49
49
  *
50
- * @group Configuration
50
+ * @group Serenity
51
51
  */
52
52
  export type ClassDescription =
53
53
  string | // e.g. '@serenity-js/core:StreamReporter'
@@ -14,7 +14,7 @@ import { ClassDescription } from './ClassDescription';
14
14
  * - {@apilink ClassDescription}
15
15
  * - {@apilink Stage.waitForNextCue}
16
16
  *
17
- * @group Configuration
17
+ * @group Serenity
18
18
  */
19
19
  export abstract class SerenityConfig {
20
20
 
@@ -0,0 +1,35 @@
1
+ import { JSONObject } from 'tiny-types';
2
+
3
+ import { ErrorSerialiser } from './ErrorSerialiser';
4
+ import { RuntimeError } from './RuntimeError';
5
+
6
+ /**
7
+ * Thrown to indicate that an {@apilink Interaction}, a {@apilink Task} or a test scenario
8
+ * can't be executed due to no items are found in a list.
9
+ *
10
+ * For example, it's not possible to get the first() or the last() item of a list
11
+ * if the list is empty.
12
+ *
13
+ * @group Errors
14
+ */
15
+ export class ListItemNotFoundError extends RuntimeError {
16
+
17
+ static fromJSON(serialised: JSONObject): ListItemNotFoundError {
18
+ const error = new ListItemNotFoundError(
19
+ serialised.message as string,
20
+ ErrorSerialiser.deserialise(serialised.cause as string | undefined),
21
+ );
22
+
23
+ error.stack = serialised.stack as string;
24
+
25
+ return error;
26
+ }
27
+
28
+ /**
29
+ * @param message - Human-readable description of the error
30
+ * @param [cause] - The root cause of this {@apilink ListItemNotFoundError}, if any
31
+ */
32
+ constructor(message: string, cause?: Error) {
33
+ super(ListItemNotFoundError, message, cause);
34
+ }
35
+ }
@@ -22,6 +22,7 @@ export { ConfigurationError } from './ConfigurationError';
22
22
  export { ErrorSerialiser } from './ErrorSerialiser';
23
23
  export { ErrorStackParser } from './ErrorStackParser';
24
24
  export { ImplementationPendingError } from './ImplementationPendingError';
25
+ export { ListItemNotFoundError } from './ListItemNotFoundError';
25
26
  export { LogicError } from './LogicError';
26
27
  export { RuntimeError } from './RuntimeError';
27
28
  export { TestCompromisedError } from './TestCompromisedError';
package/src/io/format.ts CHANGED
@@ -56,7 +56,7 @@ import { inspected } from './inspected';
56
56
  * @param config
57
57
  * `markQuestions`: boolean - if set to true, descriptions of questions passed in as arguments will be surrounded with double angled brackets, i.e. `<<description>>`
58
58
  *
59
- * @group Answerables
59
+ * @group Questions
60
60
  */
61
61
  export function format(config: { markQuestions: boolean }): (templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>) => string {
62
62
  return (templates: TemplateStringsArray, ...placeholders: Array<Answerable<any>>): string => {
@@ -69,8 +69,8 @@ export function format(config: { markQuestions: boolean }): (templates: Template
69
69
  }
70
70
  }
71
71
 
72
- /** @group Answerables */
72
+ /** @group Questions */
73
73
  export const f = format({ markQuestions: true });
74
74
 
75
- /** @group Answerables */
75
+ /** @group Questions */
76
76
  export const d = format({ markQuestions: false });
@@ -157,7 +157,7 @@
157
157
  * - {@apilink CallAnApi}
158
158
  * - {@apilink TakeNotes}
159
159
  *
160
- * @group Screenplay Pattern
160
+ * @group Abilities
161
161
  */
162
162
  export interface Ability { // eslint-disable-line @typescript-eslint/no-empty-interface
163
163
  }
@@ -13,7 +13,7 @@ import { AnswersQuestions, PerformsActivities, UsesAbilities } from './actor';
13
13
  * - {@apilink PerformsActivities}
14
14
  * - [Command design pattern on Wikipedia](https://en.wikipedia.org/wiki/Command_pattern)
15
15
  *
16
- * @group Screenplay Pattern
16
+ * @group Activities
17
17
  */
18
18
  export abstract class Activity {
19
19
 
@@ -4,6 +4,6 @@ import { Question } from './Question';
4
4
  * A union type that provides a convenient way to represent any value
5
5
  * that can be resolved by {@apilink Actor.answer}.
6
6
  *
7
- * @group Answerables
7
+ * @group Questions
8
8
  */
9
9
  export type Answerable<T> = Question<Promise<T>> | Question<T> | Promise<T> | T;
@@ -8,7 +8,7 @@ import { Question } from './Question';
8
8
  * Answered<Answerable<T>> === T
9
9
  * ```
10
10
  *
11
- * @group Answerables
11
+ * @group Questions
12
12
  */
13
13
  export type Answered<T> =
14
14
  T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode
@@ -41,7 +41,7 @@ import { Actor, AnswersQuestions, CollectsArtifacts, UsesAbilities } from './act
41
41
  * )
42
42
  * ```
43
43
  *
44
- * @group Screenplay Pattern
44
+ * @group Activities
45
45
  */
46
46
  export abstract class Interaction extends Activity {
47
47
 
@@ -15,7 +15,7 @@ import { Answerable } from './Answerable';
15
15
  * and if all the links of the property chain leading to the entry of interest exist too
16
16
  * (so `books` is present, and so is `books[0]`, `books[0].author`, `books[0].author.name`).
17
17
  *
18
- * @group Answerables
18
+ * @group Questions
19
19
  */
20
20
  export interface Optional {
21
21
  /**
@@ -99,7 +99,7 @@ import { WithAnswerableProperties } from './WithAnswerableProperties';
99
99
  * - {@apilink Ability}
100
100
  * - {@apilink QuestionAdapter}
101
101
  *
102
- * @group Screenplay Pattern
102
+ * @group Questions
103
103
  */
104
104
  export abstract class Question<T> {
105
105
 
@@ -378,7 +378,7 @@ declare global {
378
378
  * - both methods and fields of the wrapped object can be used as {@apilink Question|questions} or {@apilink Interactions|interactions}
379
379
  * - method parameters of the wrapped object will accept {@apilink Answerable|Answerable<T>}
380
380
  *
381
- * @group Answerables
381
+ * @group Questions
382
382
  */
383
383
  export type QuestionAdapterFieldDecorator<Original_Type> = {
384
384
  [Field in keyof Omit<Original_Type, keyof QuestionStatement<Original_Type>>]:
@@ -400,7 +400,7 @@ export type QuestionAdapterFieldDecorator<Original_Type> = {
400
400
  * {@apilink QuestionAdapter} proxies the methods and fields of the wrapped object recursively,
401
401
  * allowing them to be used as either a {@apilink Question} or an {@apilink Interaction}.
402
402
  *
403
- * @group Answerables
403
+ * @group Questions
404
404
  */
405
405
  export type QuestionAdapter<T> =
406
406
  & Question<Promise<T>>
@@ -33,7 +33,7 @@ import { Question } from './Question';
33
33
  * // RequestConfiguration === RecursivelyAnswered<WithAnswerableProperties<RequestConfiguration>>
34
34
  * ```
35
35
  *
36
- * @group Answerables
36
+ * @group Questions
37
37
  */
38
38
  export type RecursivelyAnswered<T> =
39
39
  T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode
@@ -53,7 +53,7 @@ import { PerformsActivities } from './actor';
53
53
  * - {@apilink Activity}
54
54
  * - {@apilink Actor}
55
55
  *
56
- * @group Screenplay Pattern
56
+ * @group Activities
57
57
  */
58
58
  export abstract class Task extends Activity {
59
59
 
@@ -26,7 +26,7 @@ import { Question } from './Question';
26
26
  * const answer: RequestConfiguration = await actorCalled('Annie').answer(question);
27
27
  * ```
28
28
  *
29
- * @group Answerables
29
+ * @group Questions
30
30
  */
31
31
  export type WithAnswerableProperties<T> =
32
32
  T extends null | undefined ? T :
@@ -21,7 +21,7 @@ import { UsesAbilities } from './UsesAbilities';
21
21
  * - {@apilink Cast}
22
22
  * - {@apilink Stage}
23
23
  *
24
- * @group Screenplay Pattern
24
+ * @group Actors
25
25
  */
26
26
  export class Actor implements
27
27
  PerformsActivities,
@@ -1,6 +1,6 @@
1
1
  import { ensure, isGreaterThanOrEqualTo, isInRange } from 'tiny-types';
2
2
 
3
- import { AssertionError, TimeoutExpiredError } from '../../errors';
3
+ import { AssertionError, ListItemNotFoundError, TimeoutExpiredError } from '../../errors';
4
4
  import { d } from '../../io';
5
5
  import { Duration } from '../../model';
6
6
  import { AnswersQuestions, UsesAbilities } from '../actor';
@@ -252,7 +252,7 @@ export class WaitUntil<Actual> extends Interaction {
252
252
  pollingEvery(interval: Duration): Interaction {
253
253
  return new WaitUntil(this.actual, this.expectation, this.timeout, interval);
254
254
  }
255
-
255
+
256
256
  /**
257
257
  * @inheritDoc
258
258
  */
@@ -268,8 +268,8 @@ export class WaitUntil<Actual> extends Interaction {
268
268
  }
269
269
 
270
270
  const timeout = timeoutAfter(this.timeout);
271
- const poller = waitUntil(expectation, this.pollingInterval);
272
-
271
+ const poller = waitUntil(expectation, this.pollingInterval);
272
+
273
273
  return Promise.race([
274
274
  timeout.start(),
275
275
  poller.start(),
@@ -320,25 +320,33 @@ function waitUntil(expectation: () => Promise<boolean> | boolean, pollingInterva
320
320
  let pollingActive = false;
321
321
 
322
322
  async function poll(): Promise<void> {
323
+
324
+ async function nextPollingInterval(): Promise<void> {
325
+ if (pollingActive) {
326
+ delay = waitFor(pollingInterval);
327
+ await delay.start();
328
+ await poll();
329
+ }
330
+ }
331
+
323
332
  try {
324
333
  const expectationIsMet = await expectation();
325
-
326
334
  if (expectationIsMet) {
327
335
  delay?.stop();
328
336
  return;
329
337
  }
338
+ await nextPollingInterval();
339
+ } catch (error) {
340
+ delay?.stop();
330
341
 
331
- if (pollingActive) {
332
- delay = waitFor(pollingInterval);
333
-
334
- await delay.start();
335
-
336
- await poll();
342
+ if (error instanceof ListItemNotFoundError) {
343
+ await nextPollingInterval();
344
+ return;
337
345
  }
338
- } catch (error) {
339
- delay?.stop()
346
+
340
347
  throw error;
341
348
  }
349
+
342
350
  }
343
351
 
344
352
  return {
@@ -1,4 +1,4 @@
1
- import { LogicError } from '../../errors';
1
+ import { ListItemNotFoundError, LogicError } from '../../errors';
2
2
  import { d } from '../../io';
3
3
  import { Actor, AnswersQuestions, UsesAbilities } from '../actor';
4
4
  import { Answerable } from '../Answerable';
@@ -61,7 +61,7 @@ export class List<Item_Type> extends Question<Promise<Item_Type[]>> {
61
61
  const items = await this.answeredBy(actor);
62
62
 
63
63
  if (items.length === 0) {
64
- throw new LogicError(d`Can't retrieve the first item from a list with 0 items: ${ items }`)
64
+ throw new ListItemNotFoundError(d`Can't retrieve the first item from a list with 0 items: ${ items }`)
65
65
  }
66
66
 
67
67
  return items[0];
@@ -73,7 +73,7 @@ export class List<Item_Type> extends Question<Promise<Item_Type[]>> {
73
73
  const items = await this.answeredBy(actor);
74
74
 
75
75
  if (items.length === 0) {
76
- throw new LogicError(d`Can't retrieve the last item from a list with 0 items: ${ items }`)
76
+ throw new ListItemNotFoundError(d`Can't retrieve the last item from a list with 0 items: ${ items }`)
77
77
  }
78
78
 
79
79
  return items[items.length - 1];
@@ -85,7 +85,7 @@ export class List<Item_Type> extends Question<Promise<Item_Type[]>> {
85
85
  const items = await this.answeredBy(actor);
86
86
 
87
87
  if (index < 0 || items.length <= index) {
88
- throw new LogicError(`Can't retrieve the ${ ordinal(index) } item from a list with ${ items.length } items: ` + d`${ items }`)
88
+ throw new ListItemNotFoundError(`Can't retrieve the ${ ordinal(index) } item from a list with ${ items.length } items: ` + d`${ items }`)
89
89
  }
90
90
 
91
91
  return items[index];
@@ -13,7 +13,7 @@ import { Question } from '../Question';
13
13
  * ## Learn more
14
14
  * - {@apilink List}
15
15
  *
16
- * @group Answerables
16
+ * @group Questions
17
17
  */
18
18
  export interface MetaQuestion<Supported_Answerable_Type extends Answerable<any>, Answer> {
19
19
 
@@ -58,7 +58,7 @@ import { Question, QuestionAdapter } from '../Question';
58
58
  * - {@apilink Question.describedAs}
59
59
  * - {@apilink QuestionAdapter}
60
60
  *
61
- * @group Answerables
61
+ * @group Questions
62
62
  *
63
63
  * @param templates
64
64
  * @param parameters
@@ -70,11 +70,12 @@ import { Hash } from './Hash';
70
70
  * ]
71
71
  * // other Serenity/JS config
72
72
  * },
73
- * },
74
- * // other WebdriverIO config
73
+ * // other WebdriverIO config
75
74
  * }
76
75
  * ```
77
76
  *
77
+ * [ '@serenity-js/core:ArtifactArchiver', { outputDirectory: 'target/site/serenity' } ],
78
+ *
78
79
  * @group Stage
79
80
  */
80
81
  export class ArtifactArchiver implements StageCrewMember {
@@ -4,7 +4,7 @@ import { DomainEvent } from '../../events';
4
4
  import { CorrelationId } from '../../model';
5
5
 
6
6
  /**
7
- * @package
7
+ * @group Stage
8
8
  */
9
9
  export class DomainEventQueue {
10
10
  private readonly queue: Array<DomainEvent & { sceneId: CorrelationId }>;
@@ -5,7 +5,7 @@ import { CorrelationId, ScenarioDetails } from '../../model';
5
5
  import { DomainEventQueue } from './DomainEventQueue';
6
6
 
7
7
  /**
8
- * @package
8
+ * @group Stage
9
9
  */
10
10
  export class DomainEventQueues {
11
11