@serenity-js/web 3.0.0-rc.27 → 3.0.0-rc.29

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 (54) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/lib/expectations/ElementExpectation.d.ts +2 -2
  3. package/lib/expectations/ElementExpectation.js +2 -2
  4. package/lib/expectations/isSelected.d.ts +1 -1
  5. package/lib/expectations/isSelected.js +1 -1
  6. package/lib/screenplay/interactions/Clear.d.ts +1 -1
  7. package/lib/screenplay/interactions/Clear.d.ts.map +1 -1
  8. package/lib/screenplay/interactions/Clear.js.map +1 -1
  9. package/lib/screenplay/interactions/ExecuteScript.d.ts +1 -1
  10. package/lib/screenplay/interactions/ExecuteScript.d.ts.map +1 -1
  11. package/lib/screenplay/interactions/ExecuteScript.js +12 -30
  12. package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
  13. package/lib/screenplay/interactions/Navigate.js +1 -7
  14. package/lib/screenplay/interactions/Navigate.js.map +1 -1
  15. package/lib/screenplay/interactions/PageElementInteraction.d.ts +2 -11
  16. package/lib/screenplay/interactions/PageElementInteraction.d.ts.map +1 -1
  17. package/lib/screenplay/interactions/PageElementInteraction.js +2 -14
  18. package/lib/screenplay/interactions/PageElementInteraction.js.map +1 -1
  19. package/lib/screenplay/interactions/Press.d.ts +1 -1
  20. package/lib/screenplay/interactions/Press.d.ts.map +1 -1
  21. package/lib/screenplay/interactions/Press.js +1 -1
  22. package/lib/screenplay/interactions/Press.js.map +1 -1
  23. package/lib/screenplay/interactions/Scroll.d.ts +0 -4
  24. package/lib/screenplay/interactions/Scroll.d.ts.map +1 -1
  25. package/lib/screenplay/interactions/Scroll.js +1 -7
  26. package/lib/screenplay/interactions/Scroll.js.map +1 -1
  27. package/lib/screenplay/interactions/Switch.d.ts +0 -4
  28. package/lib/screenplay/interactions/Switch.d.ts.map +1 -1
  29. package/lib/screenplay/interactions/Switch.js +2 -14
  30. package/lib/screenplay/interactions/Switch.js.map +1 -1
  31. package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -4
  32. package/lib/screenplay/interactions/TakeScreenshot.d.ts.map +1 -1
  33. package/lib/screenplay/interactions/TakeScreenshot.js +1 -7
  34. package/lib/screenplay/interactions/TakeScreenshot.js.map +1 -1
  35. package/lib/screenplay/models/PageElement.d.ts +1 -1
  36. package/lib/screenplay/models/PageElement.d.ts.map +1 -1
  37. package/lib/screenplay/models/PageElement.js +8 -0
  38. package/lib/screenplay/models/PageElement.js.map +1 -1
  39. package/lib/screenplay/models/RootLocator.d.ts +3 -1
  40. package/lib/screenplay/models/RootLocator.d.ts.map +1 -1
  41. package/lib/screenplay/models/RootLocator.js.map +1 -1
  42. package/package.json +6 -5
  43. package/src/expectations/ElementExpectation.ts +2 -2
  44. package/src/expectations/isSelected.ts +1 -1
  45. package/src/screenplay/interactions/Clear.ts +1 -1
  46. package/src/screenplay/interactions/ExecuteScript.ts +26 -32
  47. package/src/screenplay/interactions/Navigate.ts +1 -8
  48. package/src/screenplay/interactions/PageElementInteraction.ts +3 -14
  49. package/src/screenplay/interactions/Press.ts +2 -2
  50. package/src/screenplay/interactions/Scroll.ts +1 -8
  51. package/src/screenplay/interactions/Switch.ts +2 -16
  52. package/src/screenplay/interactions/TakeScreenshot.ts +1 -8
  53. package/src/screenplay/models/PageElement.ts +3 -1
  54. package/src/screenplay/models/RootLocator.ts +4 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,37 @@
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.29](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.28...v3.0.0-rc.29) (2022-10-01)
7
+
8
+ **Note:** Version bump only for package @serenity-js/web
9
+
10
+
11
+
12
+
13
+
14
+ # [3.0.0-rc.28](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.27...v3.0.0-rc.28) (2022-09-30)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **core:** activity is now able to detect invocation location on Node 14 ([41f4776](https://github.com/serenity-js/serenity-js/commit/41f4776736620bc32d474d9b66f69c742f8eca96)), closes [#1240](https://github.com/serenity-js/serenity-js/issues/1240)
20
+ * **playwright:** corrected not(isPresent()) for PlaywrightPageElement ([0693b2f](https://github.com/serenity-js/serenity-js/commit/0693b2f2666a8de327c990c72ecf42fc3d7da498)), closes [#1240](https://github.com/serenity-js/serenity-js/issues/1240)
21
+ * **web:** question about Text.of(element) now trims newline and space characters ([c68bbe9](https://github.com/serenity-js/serenity-js/commit/c68bbe9bed082c84538983dd6233e684190c3c43))
22
+
23
+
24
+ ### Features
25
+
26
+ * **playwright-test:** improved Playwright Test reports ([6c6b537](https://github.com/serenity-js/serenity-js/commit/6c6b5379dfc324a4fb75d758daa7782109f1c5ab)), closes [#1240](https://github.com/serenity-js/serenity-js/issues/1240)
27
+
28
+
29
+ ### Reverts
30
+
31
+ * **web:** reverted the change to Text that would make it automatically trim the retrieved text ([f5a47b7](https://github.com/serenity-js/serenity-js/commit/f5a47b7e9e0be26522522b5a6647b24ffad6bee8))
32
+
33
+
34
+
35
+
36
+
6
37
  # [3.0.0-rc.27](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.26...v3.0.0-rc.27) (2022-08-26)
7
38
 
8
39
  **Note:** Version bump only for package @serenity-js/web
@@ -10,7 +10,7 @@ import { PageElement } from '../screenplay';
10
10
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
11
11
  *
12
12
  * export function isEmpty(): Expectation<boolean, PageElement> {
13
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
13
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
14
14
  * const value = await actual.value();
15
15
  * return value.length === 0;
16
16
  * })
@@ -88,7 +88,7 @@ export declare class ElementExpectation extends Expectation<PageElement> {
88
88
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
89
89
  *
90
90
  * export function isEmpty(): Expectation<boolean, PageElement> {
91
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
91
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
92
92
  * const value = await actual.value();
93
93
  * return value.length === 0;
94
94
  * })
@@ -12,7 +12,7 @@ const core_1 = require("@serenity-js/core");
12
12
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
13
13
  *
14
14
  * export function isEmpty(): Expectation<boolean, PageElement> {
15
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
15
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
16
16
  * const value = await actual.value();
17
17
  * return value.length === 0;
18
18
  * })
@@ -99,7 +99,7 @@ class ElementExpectation extends core_1.Expectation {
99
99
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
100
100
  *
101
101
  * export function isEmpty(): Expectation<boolean, PageElement> {
102
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
102
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
103
103
  * const value = await actual.value();
104
104
  * return value.length === 0;
105
105
  * })
@@ -3,7 +3,7 @@ import { PageElement } from '../screenplay';
3
3
  /**
4
4
  * {@apilink Expectation} that an `<option>` or `<input>` element is selected, which means it resolves to `true` when:
5
5
  * - the element {@apilink isPresent|is present} in the [DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)
6
- * - {@apilink PageElement.isEnabled} resolves to `true`
6
+ * - {@apilink PageElement.isSelected} resolves to `true`
7
7
  *
8
8
  * If the above conditions are not met, the expectation resolves to `false`.
9
9
  *
@@ -7,7 +7,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
7
7
  /**
8
8
  * {@apilink Expectation} that an `<option>` or `<input>` element is selected, which means it resolves to `true` when:
9
9
  * - the element {@apilink isPresent|is present} in the [DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)
10
- * - {@apilink PageElement.isEnabled} resolves to `true`
10
+ * - {@apilink PageElement.isSelected} resolves to `true`
11
11
  *
12
12
  * If the above conditions are not met, the expectation resolves to `false`.
13
13
  *
@@ -63,7 +63,7 @@ export declare class Clear extends PageElementInteraction {
63
63
  * The field which value should be cleared
64
64
  */
65
65
  static theValueOf(field: Answerable<PageElement>): Interaction;
66
- constructor(field: Answerable<PageElement>);
66
+ protected constructor(field: Answerable<PageElement>);
67
67
  /**
68
68
  * @inheritDoc
69
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Clear.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5G,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,KAAM,SAAQ,sBAAsB;IAcjC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZlC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW;gBAIjC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC;IAI3D;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAQzD,yBAAyB;IAmBvC,OAAO,CAAC,qBAAqB;CAGhC"}
1
+ {"version":3,"file":"Clear.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5G,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,KAAM,SAAQ,sBAAsB;IAcvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZ5C;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW;IAI9D,SAAS,aAA8B,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC;IAIrE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAQzD,yBAAyB;IAmBvC,OAAO,CAAC,qBAAqB;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Clear.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":";;;AAAA,4CAA4G;AAG5G,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAc7C,YAA6B,KAA8B;QACvD,KAAK,CAAC,IAAA,QAAC,EAAA,8BAA+B,KAAM,EAAE,CAAC,CAAC;QADvB,UAAK,GAAL,KAAK,CAAyB;IAE3D,CAAC;IAdD;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,KAA8B;QAC5C,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QACxD,IAAI,UAAiB,EACjB,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI;YACA,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,iBAAiB,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;SAC7D;QAAC,OAAO,KAAK,EAAE;YACZ,UAAU,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,CAAE,iBAAiB,IAAI,UAAU,EAAE;YACnC,MAAM,IAAI,iBAAU,CAChB,IAAI,CAAC,qBAAqB,CAAC,IAAA,QAAC,EAAA,GAAI,IAAI,CAAC,KAAM,kEAAkE,CAAC,EAC9G,UAAU,CACb,CAAC;SACL;IACL,CAAC;IAEO,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ;AAnDD,sBAmDC"}
1
+ {"version":3,"file":"Clear.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":";;;AAAA,4CAA4G;AAG5G,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAc7C,YAAuC,KAA8B;QACjE,KAAK,CAAC,IAAA,QAAC,EAAA,8BAA+B,KAAM,EAAE,CAAC,CAAC;QADb,UAAK,GAAL,KAAK,CAAyB;IAErE,CAAC;IAdD;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,KAA8B;QAC5C,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QACxD,IAAI,UAAiB,EACjB,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI;YACA,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,iBAAiB,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;SAC7D;QAAC,OAAO,KAAK,EAAE;YACZ,UAAU,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,CAAE,iBAAiB,IAAI,UAAU,EAAE;YACnC,MAAM,IAAI,iBAAU,CAChB,IAAI,CAAC,qBAAqB,CAAC,IAAA,QAAC,EAAA,GAAI,IAAI,CAAC,KAAM,kEAAkE,CAAC,EAC9G,UAAU,CACb,CAAC;SACL;IACL,CAAC;IAEO,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ;AAnDD,sBAmDC"}
@@ -184,7 +184,7 @@ export declare class ExecuteScript {
184
184
  export declare abstract class ExecuteScriptWithArguments extends Interaction {
185
185
  protected readonly script: string | Function;
186
186
  protected readonly args: Array<Answerable<any>>;
187
- constructor(script: string | Function, // eslint-disable-line @typescript-eslint/ban-types
187
+ constructor(description: string, script: string | Function, // eslint-disable-line @typescript-eslint/ban-types
188
188
  args?: Array<Answerable<any>>);
189
189
  /**
190
190
  * Instantiates this {@apilink Interaction}
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteScript.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAK,WAAW,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/H;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAI3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;IAInE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;CAGrE;AAED;;;;;;;GAOG;AACH,8BAAsB,0BAA2B,SAAQ,WAAW;IAG5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAC5C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAD5B,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAY,mDAAmD;IACxF,IAAI,GAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAM;IAKxD;;;;;OAKG;aACa,aAAa,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;IAE3E;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3F,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CACnG"}
1
+ {"version":3,"file":"ExecuteScript.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAK,WAAW,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM/H;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAI3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;IAOnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,0BAA0B;CAMrE;AAED;;;;;;;GAOG;AACH,8BAAsB,0BAA2B,SAAQ,WAAW;IAI5D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAC5C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAF/C,WAAW,EAAE,MAAM,EACA,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAY,mDAAmD;IACxF,IAAI,GAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAM;IAKxD;;;;;OAKG;aACa,aAAa,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;IAE3E;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3F,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CACnG"}
@@ -125,7 +125,7 @@ class ExecuteScript {
125
125
  * The script to be executed
126
126
  */
127
127
  static async(script) {
128
- return new ExecuteAsynchronousScript(script);
128
+ return new ExecuteAsynchronousScript(`#actor executes an asynchronous script`, script);
129
129
  }
130
130
  /**
131
131
  * Instructs an {@apilink Actor|actor} who has the {@apilink Ability|ability} to {@apilink BrowseTheWeb}
@@ -182,7 +182,7 @@ class ExecuteScript {
182
182
  * The script to be executed
183
183
  */
184
184
  static sync(script) {
185
- return new ExecuteSynchronousScript(script);
185
+ return new ExecuteSynchronousScript(`#actor executes a synchronous script`, script);
186
186
  }
187
187
  }
188
188
  exports.ExecuteScript = ExecuteScript;
@@ -195,9 +195,9 @@ exports.ExecuteScript = ExecuteScript;
195
195
  * @group Interactions
196
196
  */
197
197
  class ExecuteScriptWithArguments extends core_1.Interaction {
198
- constructor(script, // eslint-disable-line @typescript-eslint/ban-types
198
+ constructor(description, script, // eslint-disable-line @typescript-eslint/ban-types
199
199
  args = []) {
200
- super();
200
+ super(description, core_1.Interaction.callerLocation(5));
201
201
  this.script = script;
202
202
  this.args = args;
203
203
  }
@@ -219,20 +219,14 @@ exports.ExecuteScriptWithArguments = ExecuteScriptWithArguments;
219
219
  */
220
220
  class ExecuteAsynchronousScript extends ExecuteScriptWithArguments {
221
221
  withArguments(...args) {
222
- return new ExecuteAsynchronousScript(this.script, args);
222
+ return new ExecuteAsynchronousScript(args.length > 0
223
+ ? (0, core_1.d) `#actor executes an asynchronous script with arguments: ${args}`
224
+ : this.description, this.script, args);
223
225
  }
224
226
  async executeAs(actor, args) {
225
227
  const page = await abilities_1.BrowseTheWeb.as(actor).currentPage();
226
228
  return page.executeAsyncScript(this.script, ...args); // todo: fix types
227
229
  }
228
- /**
229
- * @inheritDoc
230
- */
231
- toString() {
232
- return this.args.length > 0
233
- ? (0, core_1.d) `#actor executes an asynchronous script with arguments: ${this.args}`
234
- : `#actor executes an asynchronous script`;
235
- }
236
230
  }
237
231
  /**
238
232
  * @package
@@ -242,7 +236,7 @@ class ExecuteAsynchronousScript extends ExecuteScriptWithArguments {
242
236
  */
243
237
  class ExecuteScriptFromUrl extends core_1.Interaction {
244
238
  constructor(sourceUrl) {
245
- super();
239
+ super(`#actor executes a script from ${sourceUrl}`);
246
240
  this.sourceUrl = sourceUrl;
247
241
  }
248
242
  /**
@@ -264,7 +258,7 @@ class ExecuteScriptFromUrl extends core_1.Interaction {
264
258
  callback();
265
259
  });
266
260
  script.addEventListener('error', function () {
267
- return callback('Couldn\'t load script from ' + sourceUrl);
261
+ return callback(`Couldn't load script from ${sourceUrl}`);
268
262
  });
269
263
  script.src = sourceUrl;
270
264
  script.async = true;
@@ -276,31 +270,19 @@ class ExecuteScriptFromUrl extends core_1.Interaction {
276
270
  }
277
271
  });
278
272
  }
279
- /**
280
- * @inheritDoc
281
- */
282
- toString() {
283
- return `#actor executes a script from ${this.sourceUrl}`;
284
- }
285
273
  }
286
274
  /**
287
275
  * @package
288
276
  */
289
277
  class ExecuteSynchronousScript extends ExecuteScriptWithArguments {
290
278
  withArguments(...args) {
291
- return new ExecuteSynchronousScript(this.script, args);
279
+ return new ExecuteSynchronousScript(args.length > 0
280
+ ? (0, core_1.d) `#actor executes a synchronous script with arguments: ${args}`
281
+ : this.description, this.script, args);
292
282
  }
293
283
  async executeAs(actor, args) {
294
284
  const page = await abilities_1.BrowseTheWeb.as(actor).currentPage();
295
285
  return page.executeScript(this.script, ...args); // todo fix type
296
286
  }
297
- /**
298
- * @inheritDoc
299
- */
300
- toString() {
301
- return this.args.length > 0
302
- ? (0, core_1.d) `#actor executes a synchronous script with arguments: ${this.args}`
303
- : `#actor executes a synchronous script`;
304
- }
305
287
  }
306
288
  //# sourceMappingURL=ExecuteScript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":";;;AAAA,4CAA+H;AAC/H,iDAAoD;AACpD,uDAA6D;AAE7D,4CAA4C;AAE5C;;;;;;;;;;GAUG;AACH,MAAa,aAAa;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,SAAiB;QACzB,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAyB;QAClC,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,MAAM,CAAC,IAAI,CAAC,MAAyB;QACjC,OAAO,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACJ;AA3KD,sCA2KC;AAED;;;;;;;GAOG;AACH,MAAsB,0BAA2B,SAAQ,kBAAW;IAEhE,YACuB,MAAyB,EAAY,mDAAmD;IACxF,OAA+B,EAAE;QAEpD,KAAK,EAAE,CAAC;QAHW,WAAM,GAAN,MAAM,CAAmB;QACzB,SAAI,GAAJ,IAAI,CAA6B;IAGxD,CAAC;IAUD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAA2D;QACvE,MAAM,IAAI,GAAG,MAAM,IAAA,aAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAElC,KAAK,CAAC,OAAO,CACT,gBAAQ,CAAC,QAAQ,CAAC;YACd,WAAW,EAAK,+BAA+B;YAC/C,IAAI,EAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;SACzC,CAAC,EACF,IAAI,YAAI,CAAC,eAAe,CAAC,CAC5B,CAAC;IACN,CAAC;CAGJ;AAnCD,gEAmCC;AAED;;GAEG;AACH,MAAM,yBAA0B,SAAQ,0BAA0B;IAC9D,aAAa,CAAC,GAAG,IAA4B;QACzC,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAuC,EAAE,IAAW;QAC1E,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAG,kBAAkB;IAChG,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,IAAA,QAAC,EAAC,0DAA2D,IAAI,CAAC,IAAK,EAAE;YAC3E,CAAC,CAAC,wCAAwC,CAAC;IACnD,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,oBAAqB,SAAQ,kBAAW;IAC1C,YAA6B,SAAiB;QAC1C,KAAK,EAAE,CAAC;QADiB,cAAS,GAAT,SAAS,CAAQ;IAE9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,kBAAkB;QAC1B,0BAA0B;QAC1B,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAAoC;YACjF,MAAM,oBAAoB,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK;iBACzC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;iBACzC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,CAAE,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC3C,OAAO,QAAQ,CAAC,cAAc,GAAG,SAAS,GAAG,0BAA0B,CAAC,CAAC;aAC5E;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC5B,QAAQ,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC7B,OAAO,QAAQ,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,EACD,IAAI,CAAC,SAAS,CACjB;aACA,IAAI,CAAC,YAAY,CAAC,EAAE;YACjB,IAAI,YAAY,EAAE;gBACd,MAAM,IAAI,iBAAU,CAAC,YAAY,CAAC,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,iCAAkC,IAAI,CAAC,SAAU,EAAE,CAAC;IAC/D,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,wBAAyB,SAAQ,0BAA0B;IAE7D,aAAa,CAAC,GAAG,IAA4B;QACzC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,KAAuC,EAAE,IAAW;QAC1E,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAwB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAI,gBAAgB;IAC1F,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,CAAC,IAAA,QAAC,EAAC,wDAAyD,IAAI,CAAC,IAAK,EAAE;YACzE,CAAC,CAAC,sCAAsC,CAAC;IACjD,CAAC;CACJ"}
1
+ {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"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"}
@@ -159,7 +159,7 @@ exports.Navigate = Navigate;
159
159
  */
160
160
  class NavigateToUrl extends core_1.Interaction {
161
161
  constructor(url) {
162
- super();
162
+ super((0, core_1.d) `#actor navigates to ${url}`);
163
163
  this.url = url;
164
164
  }
165
165
  /**
@@ -172,11 +172,5 @@ class NavigateToUrl extends core_1.Interaction {
172
172
  throw new core_1.TestCompromisedError(`Couldn't navigate to ${url}`, error);
173
173
  });
174
174
  }
175
- /**
176
- * @inheritDoc
177
- */
178
- toString() {
179
- return (0, core_1.d) `#actor navigates to ${this.url}`;
180
- }
181
175
  }
182
176
  //# sourceMappingURL=Navigate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigate.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Navigate.ts"],"names":[],"mappings":";;;AAAA,4CAAsH;AAEtH,4CAA4C;AAE5C;;;;;;;;;;GAUG;AACH,MAAa,QAAQ;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,MAAM,CAAC,EAAE,CAAC,GAAuB;QAC7B,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,IAAI;QACP,OAAO,kBAAW,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACnF,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAO;QACV,OAAO,kBAAW,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACtF,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,UAAU;QACb,OAAO,kBAAW,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAjJD,4BAiJC;AAED;;GAEG;AACH,MAAM,aAAc,SAAQ,kBAAW;IACnC,YAA6B,GAAuB;QAChD,KAAK,EAAE,CAAC;QADiB,QAAG,GAAH,GAAG,CAAoB;IAEpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACtC,MAAM,IAAI,2BAAoB,CAAC,wBAAyB,GAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAA,QAAC,EAAC,uBAAwB,IAAI,CAAC,GAAI,EAAE,CAAC;IACjD,CAAC;CACJ"}
1
+ {"version":3,"file":"Navigate.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Navigate.ts"],"names":[],"mappings":";;;AAAA,4CAAsH;AAEtH,4CAA4C;AAE5C;;;;;;;;;;GAUG;AACH,MAAa,QAAQ;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,MAAM,CAAC,EAAE,CAAC,GAAuB;QAC7B,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,IAAI;QACP,OAAO,kBAAW,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACnF,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,OAAO;QACV,OAAO,kBAAW,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACtF,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,UAAU;QACb,OAAO,kBAAW,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAExD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAjJD,4BAiJC;AAED;;GAEG;AACH,MAAM,aAAc,SAAQ,kBAAW;IACnC,YAA6B,GAAuB;QAChD,KAAK,CAAC,IAAA,QAAC,EAAA,uBAAwB,GAAI,EAAE,CAAC,CAAC;QADd,QAAG,GAAH,GAAG,CAAoB;IAEpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAExD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACtC,MAAM,IAAI,2BAAoB,CAAC,wBAAyB,GAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -1,4 +1,5 @@
1
1
  import { Answerable, AnswersQuestions, Interaction } from '@serenity-js/core';
2
+ import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
3
  import { PageElement } from '../models';
3
4
  /**
4
5
  * A base class for interactions with {@apilink PageElement} objects.
@@ -9,13 +10,7 @@ import { PageElement } from '../models';
9
10
  * @group Interactions
10
11
  */
11
12
  export declare abstract class PageElementInteraction extends Interaction {
12
- private readonly description;
13
- /**
14
- * @param description
15
- * A human-readable description to be used when reporting
16
- * this {@apilink Interaction}.
17
- */
18
- protected constructor(description: string);
13
+ protected constructor(description: string, location?: FileSystemLocation);
19
14
  /**
20
15
  * Returns the resolved {@apilink PageElement}, or throws a {@apilink LogicError}
21
16
  * if the element is `undefined`.
@@ -24,9 +19,5 @@ export declare abstract class PageElementInteraction extends Interaction {
24
19
  * @param element
25
20
  */
26
21
  protected resolve(actor: AnswersQuestions, element: Answerable<PageElement>): Promise<PageElement>;
27
- /**
28
- * @inheritDoc
29
- */
30
- toString(): string;
31
22
  }
32
23
  //# sourceMappingURL=PageElementInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageElementInteraction.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/PageElementInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;GAOG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAOtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IALlD;;;;OAIG;IACH,SAAS,aAA8B,WAAW,EAAE,MAAM;IAI1D;;;;;;OAMG;cACa,OAAO,CACnB,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAUvB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"PageElementInteraction.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/PageElementInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;GAOG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAE5D,SAAS,aAAa,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,kBAAkD;IAIvG;;;;;;OAMG;cACa,OAAO,CACnB,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;CAS1B"}
@@ -11,14 +11,8 @@ const core_1 = require("@serenity-js/core");
11
11
  * @group Interactions
12
12
  */
13
13
  class PageElementInteraction extends core_1.Interaction {
14
- /**
15
- * @param description
16
- * A human-readable description to be used when reporting
17
- * this {@apilink Interaction}.
18
- */
19
- constructor(description) {
20
- super();
21
- this.description = description;
14
+ constructor(description, location = core_1.Interaction.callerLocation(4)) {
15
+ super(description, location);
22
16
  }
23
17
  /**
24
18
  * Returns the resolved {@apilink PageElement}, or throws a {@apilink LogicError}
@@ -34,12 +28,6 @@ class PageElementInteraction extends core_1.Interaction {
34
28
  }
35
29
  return resolved;
36
30
  }
37
- /**
38
- * @inheritDoc
39
- */
40
- toString() {
41
- return this.description;
42
- }
43
31
  }
44
32
  exports.PageElementInteraction = PageElementInteraction;
45
33
  //# sourceMappingURL=PageElementInteraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageElementInteraction.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/PageElementInteraction.ts"],"names":[],"mappings":";;;AAAA,4CAA6F;AAI7F;;;;;;;GAOG;AACH,MAAsB,sBAAuB,SAAQ,kBAAW;IAE5D;;;;OAIG;IACH,YAAuC,WAAmB;QACtD,KAAK,EAAE,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAAQ;IAE1D,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,OAAO,CACnB,KAAuB,EACvB,OAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAE,QAAQ,EAAE;YACZ,MAAM,IAAI,iBAAU,CAAC,IAAA,QAAC,EAAC,iBAAkB,OAAQ,EAAE,CAAC,CAAC;SACxD;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ;AArCD,wDAqCC"}
1
+ {"version":3,"file":"PageElementInteraction.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/PageElementInteraction.ts"],"names":[],"mappings":";;;AAAA,4CAA6F;AAK7F;;;;;;;GAOG;AACH,MAAsB,sBAAuB,SAAQ,kBAAW;IAE5D,YAAsB,WAAmB,EAAE,WAA+B,kBAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QACnG,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,OAAO,CACnB,KAAuB,EACvB,OAAgC;QAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAE,QAAQ,EAAE;YACZ,MAAM,IAAI,iBAAU,CAAC,IAAA,QAAC,EAAC,iBAAkB,OAAQ,EAAE,CAAC,CAAC;SACxD;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAzBD,wDAyBC"}
@@ -81,7 +81,7 @@ export declare class Press extends PageElementInteraction {
81
81
  * @param keys
82
82
  * A sequence of one or more keys to press
83
83
  */
84
- constructor(keys: Answerable<Array<Key | string>>);
84
+ protected constructor(keys: Answerable<Array<Key | string>>);
85
85
  /**
86
86
  * @inheritDoc
87
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Press.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Press.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAY,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIpH,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,KAAM,SAAQ,sBAAsB;IA+BzC,OAAO,CAAC,QAAQ,CAAC,IAAI;IA7BzB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,WAAW,CAAA;KAAE;IAI3I;;;;OAIG;IACH,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW;IAI/C;;;OAGG;gBAEkB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IAK1D;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1E"}
1
+ {"version":3,"file":"Press.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Press.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAY,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIpH,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBAAa,KAAM,SAAQ,sBAAsB;IA+BzC,OAAO,CAAC,QAAQ,CAAC,IAAI;IA7BzB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG;QAAE,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,WAAW,CAAA;KAAE;IAI3I;;;;OAIG;IACH,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW;IAI/C;;;OAGG;IACH,SAAS,aACY,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IAK1D;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1E"}
@@ -110,7 +110,7 @@ class PressKeyInField extends PageElementInteraction_1.PageElementInteraction {
110
110
  * Web element to send the keys to
111
111
  */
112
112
  constructor(keys, field /* todo | Question<AlertPromise> | AlertPromise */) {
113
- super((0, core_1.d) `#actor presses ${keys} in ${field}`);
113
+ super((0, core_1.d) `#actor presses ${keys} in ${field}`, core_1.Interaction.callerLocation(3));
114
114
  this.keys = keys;
115
115
  this.field = field;
116
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Press.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Press.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Press.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Press.ts"],"names":[],"mappings":"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"}
@@ -61,9 +61,5 @@ export declare class Scroll extends Interaction {
61
61
  * @inheritDoc
62
62
  */
63
63
  performAs(actor: UsesAbilities & AnswersQuestions): Promise<void>;
64
- /**
65
- * @inheritDoc
66
- */
67
- toString(): string;
68
64
  }
69
65
  //# sourceMappingURL=Scroll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scroll.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAYb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV9C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM;IAIvD,SAAS,aAA8B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;IAIvE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"Scroll.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAK,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAYb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV9C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM;IAIvD,SAAS,aAA8B,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;IAIvE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1E"}
@@ -51,7 +51,7 @@ const core_1 = require("@serenity-js/core");
51
51
  */
52
52
  class Scroll extends core_1.Interaction {
53
53
  constructor(element) {
54
- super();
54
+ super((0, core_1.d) `#actor scrolls to ${element}`);
55
55
  this.element = element;
56
56
  }
57
57
  /**
@@ -70,12 +70,6 @@ class Scroll extends core_1.Interaction {
70
70
  const target = await actor.answer(this.element);
71
71
  return target.scrollIntoView();
72
72
  }
73
- /**
74
- * @inheritDoc
75
- */
76
- toString() {
77
- return (0, core_1.d) `#actor scrolls to ${this.element}`;
78
- }
79
73
  }
80
74
  exports.Scroll = Scroll;
81
75
  //# sourceMappingURL=Scroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scroll.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Scroll.ts"],"names":[],"mappings":";;;AAAA,4CAAgG;AAIhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAa,MAAO,SAAQ,kBAAW;IAYnC,YAAuC,OAAgC;QACnE,KAAK,EAAE,CAAC;QAD2B,YAAO,GAAP,OAAO,CAAyB;IAEvE,CAAC;IAZD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAA,QAAC,EAAA,qBAAsB,IAAI,CAAC,OAAQ,EAAE,CAAC;IAClD,CAAC;CACJ;AA/BD,wBA+BC"}
1
+ {"version":3,"file":"Scroll.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Scroll.ts"],"names":[],"mappings":";;;AAAA,4CAAgG;AAIhG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAa,MAAO,SAAQ,kBAAW;IAYnC,YAAuC,OAAgC;QACnE,KAAK,CAAC,IAAA,QAAC,EAAA,qBAAsB,OAAQ,EAAE,CAAC,CAAC;QADN,YAAO,GAAP,OAAO,CAAyB;IAEvE,CAAC;IAZD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;IACnC,CAAC;CACJ;AAxBD,wBAwBC"}
@@ -123,9 +123,5 @@ export declare class Switch extends Interaction {
123
123
  * @inheritDoc
124
124
  */
125
125
  performAs(actor: UsesAbilities & AnswersQuestions): Promise<void>;
126
- /**
127
- * @inheritDoc
128
- */
129
- toString(): string;
130
126
  }
131
127
  //# sourceMappingURL=Switch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAab,OAAO,CAAC,QAAQ,CAAC,UAAU;IAXjD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM;IAIrD,SAAS,aAA8B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;IAIzE;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIpC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/Switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AACH,qBAAa,MAAO,SAAQ,WAAW;IAab,OAAO,CAAC,QAAQ,CAAC,UAAU;IAXjD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM;IAIrD,SAAS,aAA8B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;IAIzE;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIpC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1E"}
@@ -102,7 +102,7 @@ const core_1 = require("@serenity-js/core");
102
102
  */
103
103
  class Switch extends core_1.Interaction {
104
104
  constructor(switchable) {
105
- super();
105
+ super(`#actor switches to ${switchable}`);
106
106
  this.switchable = switchable;
107
107
  }
108
108
  /**
@@ -134,12 +134,6 @@ class Switch extends core_1.Interaction {
134
134
  const switchable = await actor.answer(this.switchable);
135
135
  await switchable.switchTo();
136
136
  }
137
- /**
138
- * @inheritDoc
139
- */
140
- toString() {
141
- return `#actor switches to ${this.switchable}`;
142
- }
143
137
  }
144
138
  exports.Switch = Switch;
145
139
  /**
@@ -147,7 +141,7 @@ exports.Switch = Switch;
147
141
  */
148
142
  class SwitchAndPerformActivities extends core_1.Task {
149
143
  constructor(switchable, activities) {
150
- super();
144
+ super(`#actor switches to ${switchable}`);
151
145
  this.switchable = switchable;
152
146
  this.activities = activities;
153
147
  }
@@ -160,11 +154,5 @@ class SwitchAndPerformActivities extends core_1.Task {
160
154
  await actor.attemptsTo(...this.activities);
161
155
  await origin.switchBack();
162
156
  }
163
- /**
164
- * @inheritDoc
165
- */
166
- toString() {
167
- return `#actor switches to ${this.switchable}`;
168
- }
169
157
  }
170
158
  //# sourceMappingURL=Switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Switch.ts"],"names":[],"mappings":";;;AAAA,4CAAoH;AAIpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AACH,MAAa,MAAO,SAAQ,kBAAW;IAanC,YAAuC,UAAkC;QACrE,KAAK,EAAE,CAAC;QAD2B,eAAU,GAAV,UAAU,CAAwB;IAEzE,CAAC;IAbD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,UAAkC;QACxC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAMD;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,UAAsB;QACzB,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,sBAAuB,IAAI,CAAC,UAAW,EAAE,CAAC;IACrD,CAAC;CACJ;AA7CD,wBA6CC;AAED;;GAEG;AACH,MAAM,0BAA2B,SAAQ,WAAI;IACzC,YACqB,UAAkC,EAClC,UAAsB;QAEvC,KAAK,EAAE,CAAC;QAHS,eAAU,GAAV,UAAU,CAAwB;QAClC,eAAU,GAAV,UAAU,CAAY;IAG3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAY;QAExB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;QAE3C,MAAM,KAAK,CAAC,UAAU,CAClB,GAAG,IAAI,CAAC,UAAU,CACrB,CAAA;QAED,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,sBAAuB,IAAI,CAAC,UAAW,EAAE,CAAC;IACrD,CAAC;CACJ"}
1
+ {"version":3,"file":"Switch.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Switch.ts"],"names":[],"mappings":";;;AAAA,4CAAoH;AAIpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGG;AACH,MAAa,MAAO,SAAQ,kBAAW;IAanC,YAAuC,UAAkC;QACrE,KAAK,CAAC,sBAAuB,UAAW,EAAE,CAAC,CAAC;QADT,eAAU,GAAV,UAAU,CAAwB;IAEzE,CAAC;IAbD;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,CAAC,UAAkC;QACxC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAMD;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,UAAsB;QACzB,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;CACJ;AAtCD,wBAsCC;AAED;;GAEG;AACH,MAAM,0BAA2B,SAAQ,WAAI;IACzC,YACqB,UAAkC,EAClC,UAAsB;QAEvC,KAAK,CAAC,sBAAuB,UAAW,EAAE,CAAC,CAAC;QAH3B,eAAU,GAAV,UAAU,CAAwB;QAClC,eAAU,GAAV,UAAU,CAAY;IAG3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAY;QAExB,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;QAE3C,MAAM,KAAK,CAAC,UAAU,CAClB,GAAG,IAAI,CAAC,UAAU,CACrB,CAAA;QAED,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;CACJ"}
@@ -41,9 +41,5 @@ export declare class TakeScreenshot extends Interaction {
41
41
  * @inheritDoc
42
42
  */
43
43
  performAs(actor: UsesAbilities & AnswersQuestions & CollectsArtifacts): Promise<void>;
44
- /**
45
- * @inheritDoc
46
- */
47
- toString(): string;
48
44
  }
49
45
  //# sourceMappingURL=TakeScreenshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TakeScreenshot.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/TakeScreenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAK,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKnH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAYrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAV3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW;IAIhD,SAAS,aAA8B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAI/D;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3F;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"TakeScreenshot.d.ts","sourceRoot":"","sources":["../../../src/screenplay/interactions/TakeScreenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAK,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKnH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAYrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAV3C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW;IAIhD,SAAS,aAA8B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IAI/D;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAU9F"}
@@ -34,7 +34,7 @@ const abilities_1 = require("../abilities");
34
34
  */
35
35
  class TakeScreenshot extends core_1.Interaction {
36
36
  constructor(name) {
37
- super();
37
+ super((0, core_1.d) `#actor takes a screenshot of ${name}`);
38
38
  this.name = name;
39
39
  }
40
40
  /**
@@ -55,12 +55,6 @@ class TakeScreenshot extends core_1.Interaction {
55
55
  const name = await actor.answer(this.name);
56
56
  actor.collect(model_1.Photo.fromBase64(screenshot), new model_1.Name(name));
57
57
  }
58
- /**
59
- * @inheritDoc
60
- */
61
- toString() {
62
- return (0, core_1.d) `#actor takes a screenshot of ${this.name}`;
63
- }
64
58
  }
65
59
  exports.TakeScreenshot = TakeScreenshot;
66
60
  //# sourceMappingURL=TakeScreenshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TakeScreenshot.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/TakeScreenshot.ts"],"names":[],"mappings":";;;AAAA,4CAAmH;AACnH,uDAA0D;AAE1D,4CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,cAAe,SAAQ,kBAAW;IAY3C,YAAuC,IAAwB;QAC3D,KAAK,EAAE,CAAC;QAD2B,SAAI,GAAJ,IAAI,CAAoB;IAE/D,CAAC;IAZD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAwB;QAC9B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAA2D;QACvE,MAAM,IAAI,GAAY,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,UAAU,GAAM,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,IAAI,GAAY,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CACT,aAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5B,IAAI,YAAI,CAAC,IAAI,CAAC,CACjB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAA,QAAC,EAAC,gCAAgC,IAAI,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;CACJ;AApCD,wCAoCC"}
1
+ {"version":3,"file":"TakeScreenshot.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/TakeScreenshot.ts"],"names":[],"mappings":";;;AAAA,4CAAmH;AACnH,uDAA0D;AAE1D,4CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,cAAe,SAAQ,kBAAW;IAY3C,YAAuC,IAAwB;QAC3D,KAAK,CAAC,IAAA,QAAC,EAAA,gCAAiC,IAAK,EAAE,CAAC,CAAC;QADd,SAAI,GAAJ,IAAI,CAAoB;IAE/D,CAAC;IAZD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAwB;QAC9B,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAMD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAA2D;QACvE,MAAM,IAAI,GAAY,MAAM,wBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,UAAU,GAAM,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,IAAI,GAAY,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpD,KAAK,CAAC,OAAO,CACT,aAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5B,IAAI,YAAI,CAAC,IAAI,CAAC,CACjB,CAAC;IACN,CAAC;CACJ;AA7BD,wCA6BC"}
@@ -78,7 +78,7 @@ export declare abstract class PageElement<Native_Element_Type = any> implements
78
78
  * is present in the [Document Object Model (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model),
79
79
  * `false` otherwise.
80
80
  */
81
- abstract isPresent(): Promise<boolean>;
81
+ isPresent(): Promise<boolean>;
82
82
  /**
83
83
  * Resolves to `true` when the underlying element:
84
84
  * - has a [`selected` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option#attr-selected) for `<option />` elements
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAK,QAAQ,EAAY,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW,CAAC,mBAAmB,GAAG,GAAG,CAAE,YAAW,QAAQ,EAAE,UAAU;aAoB5D,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAlBjE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAStF,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAS9G,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAIjE,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAE9F;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAInD,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnF,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAExD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAErC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CACzC"}
1
+ {"version":3,"file":"PageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAK,QAAQ,EAAY,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW,CAAC,mBAAmB,GAAG,GAAG,CAAE,YAAW,QAAQ,EAAE,UAAU;aAoB5D,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAlBjE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAStF,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAS9G,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAIjE,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAE9F;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAInD,QAAQ,IAAI,MAAM;IAIlB,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACnF,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAExD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjD,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAErC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAEtC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;CACzC"}
@@ -43,6 +43,14 @@ class PageElement {
43
43
  toString() {
44
44
  return `PageElement located ${this.locator.toString()}`;
45
45
  }
46
+ /**
47
+ * Returns a {@apilink Promise} that resolves to `true` when the element
48
+ * is present in the [Document Object Model (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model),
49
+ * `false` otherwise.
50
+ */
51
+ async isPresent() {
52
+ return this.locator.isPresent();
53
+ }
46
54
  }
47
55
  exports.PageElement = PageElement;
48
56
  //# sourceMappingURL=PageElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AAAA,4CAAuF;AACvF,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IAoB7B,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IApBD,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAM,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEpE,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAE,CAAM,YAA0C,EAAE,aAA2C;QAClG,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5E,MAAM,KAAK,GAAO,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,MAAM,GAAM,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEpD,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAQD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;CAgFJ;AAnHD,kCAmHC"}
1
+ {"version":3,"file":"PageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/PageElement.ts"],"names":[],"mappings":";;;AAAA,4CAAuF;AACvF,2CAA+C;AAE/C,4CAA4C;AAO5C;;;;;;;;;;GAUG;AACH,MAAsB,WAAW;IAoB7B,YAA4B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;QAC7D,IAAA,mBAAM,EAAC,wBAAwB,EAAE,OAAO,EAAE,IAAA,sBAAS,GAAE,CAAC,CAAC;IAC3D,CAAC;IApBD,MAAM,CAAC,OAAO,CAAM,QAA8B;QAC9C,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,wBAAyB,QAAS,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACvE,MAAM,UAAU,GAAI,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,MAAM,wBAAY,CAAC,EAAE,CAAM,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEpE,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAE,CAAM,YAA0C,EAAE,aAA2C;QAClG,OAAO,eAAQ,CAAC,KAAK,CAAC,IAAA,QAAC,EAAA,GAAI,YAAa,OAAQ,aAAc,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YAC5E,MAAM,KAAK,GAAO,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,MAAM,GAAM,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEpD,OAAO,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAQD;;OAEG;IACH,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,OAAO,uBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAG,EAAE,CAAC;IAC9D,CAAC;IAuDD;;;;OAIG;IACH,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;CAoBJ;AArHD,kCAqHC"}
@@ -1,3 +1,4 @@
1
+ import { Optional } from '@serenity-js/core';
1
2
  /**
2
3
  * {@apilink RootLocator} represents the context in which {@apilink Locator} looks for {@apilink PageElement} or {@apilink PageElements}.
3
4
  * This context is either a parent element, or some representation of the top-level browsing context.
@@ -10,10 +11,11 @@
10
11
  *
11
12
  * @group Models
12
13
  */
13
- export declare abstract class RootLocator<Native_Element_Type> {
14
+ export declare abstract class RootLocator<Native_Element_Type> implements Optional {
14
15
  abstract switchToFrame(element: Native_Element_Type): Promise<void>;
15
16
  abstract switchToParentFrame(): Promise<void>;
16
17
  abstract switchToMainFrame(): Promise<void>;
18
+ abstract isPresent(): Promise<boolean>;
17
19
  abstract nativeElement(): Promise<Partial<Native_Element_Type>>;
18
20
  toString(): string;
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RootLocator.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/RootLocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,8BAAsB,WAAW,CAAC,mBAAmB;aACjC,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;aAC1D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;aACpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;aAElC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtE,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"RootLocator.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/RootLocator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,8BAAsB,WAAW,CAAC,mBAAmB,CAAE,YAAW,QAAQ;aACtD,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;aAC1D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;aACpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;aAClC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;aAE7B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtE,QAAQ,IAAI,MAAM;CAGrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"RootLocator.js","sourceRoot":"","sources":["../../../src/screenplay/models/RootLocator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,MAAsB,WAAW;IAO7B,QAAQ;QACJ,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ;AAVD,kCAUC"}
1
+ {"version":3,"file":"RootLocator.js","sourceRoot":"","sources":["../../../src/screenplay/models/RootLocator.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;GAWG;AACH,MAAsB,WAAW;IAQ7B,QAAQ;QACJ,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ;AAXD,kCAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/web",
3
- "version": "3.0.0-rc.27",
3
+ "version": "3.0.0-rc.29",
4
4
  "description": "Serenity/JS Screenplay Pattern APIs for the Web",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -44,8 +44,8 @@
44
44
  "npm": "^6 || ^7 || ^8"
45
45
  },
46
46
  "dependencies": {
47
- "@serenity-js/assertions": "3.0.0-rc.27",
48
- "@serenity-js/core": "3.0.0-rc.27",
47
+ "@serenity-js/assertions": "3.0.0-rc.29",
48
+ "@serenity-js/core": "3.0.0-rc.29",
49
49
  "tiny-types": "^1.19.0"
50
50
  },
51
51
  "devDependencies": {
@@ -53,8 +53,9 @@
53
53
  "@types/chai": "^4.3.3",
54
54
  "@types/mocha": "^9.1.1",
55
55
  "mocha": "^10.0.0",
56
+ "nyc": "15.1.0",
56
57
  "ts-node": "^10.9.1",
57
- "typescript": "^4.7.4"
58
+ "typescript": "^4.8.4"
58
59
  },
59
- "gitHead": "9794f699256c8e7db0d6969ce95b9ce070c3ea73"
60
+ "gitHead": "c7db9619128025b61ab99fc530f3b0ae731374a7"
60
61
  }
@@ -12,7 +12,7 @@ import { PageElement } from '../screenplay';
12
12
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
13
13
  *
14
14
  * export function isEmpty(): Expectation<boolean, PageElement> {
15
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
15
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
16
16
  * const value = await actual.value();
17
17
  * return value.length === 0;
18
18
  * })
@@ -90,7 +90,7 @@ export class ElementExpectation extends Expectation<PageElement> {
90
90
  * import { ElementExpectation, PageElement } from '@serenity-js/web'
91
91
  *
92
92
  * export function isEmpty(): Expectation<boolean, PageElement> {
93
- * return ElementExpectation.forElementTo('have an empty value', await actual => {
93
+ * return ElementExpectation.forElementTo('have an empty value', async actual => {
94
94
  * const value = await actual.value();
95
95
  * return value.length === 0;
96
96
  * })
@@ -7,7 +7,7 @@ import { ElementExpectation } from './ElementExpectation';
7
7
  /**
8
8
  * {@apilink Expectation} that an `<option>` or `<input>` element is selected, which means it resolves to `true` when:
9
9
  * - the element {@apilink isPresent|is present} in the [DOM](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)
10
- * - {@apilink PageElement.isEnabled} resolves to `true`
10
+ * - {@apilink PageElement.isSelected} resolves to `true`
11
11
  *
12
12
  * If the above conditions are not met, the expectation resolves to `false`.
13
13
  *
@@ -68,7 +68,7 @@ export class Clear extends PageElementInteraction {
68
68
  return new Clear(field);
69
69
  }
70
70
 
71
- constructor(private readonly field: Answerable<PageElement>) {
71
+ protected constructor(private readonly field: Answerable<PageElement>) {
72
72
  super(d`#actor clears the value of ${ field }`);
73
73
  }
74
74
 
@@ -126,7 +126,10 @@ export class ExecuteScript {
126
126
  * The script to be executed
127
127
  */
128
128
  static async(script: string | Function): ExecuteScriptWithArguments { // eslint-disable-line @typescript-eslint/ban-types
129
- return new ExecuteAsynchronousScript(script);
129
+ return new ExecuteAsynchronousScript(
130
+ `#actor executes an asynchronous script`,
131
+ script,
132
+ );
130
133
  }
131
134
 
132
135
  /**
@@ -184,7 +187,10 @@ export class ExecuteScript {
184
187
  * The script to be executed
185
188
  */
186
189
  static sync(script: string | Function): ExecuteScriptWithArguments { // eslint-disable-line @typescript-eslint/ban-types
187
- return new ExecuteSynchronousScript(script);
190
+ return new ExecuteSynchronousScript(
191
+ `#actor executes a synchronous script`,
192
+ script,
193
+ );
188
194
  }
189
195
  }
190
196
 
@@ -199,10 +205,11 @@ export class ExecuteScript {
199
205
  export abstract class ExecuteScriptWithArguments extends Interaction {
200
206
 
201
207
  constructor(
208
+ description: string,
202
209
  protected readonly script: string | Function, // eslint-disable-line @typescript-eslint/ban-types
203
210
  protected readonly args: Array<Answerable<any>> = [],
204
211
  ) {
205
- super();
212
+ super(description, Interaction.callerLocation(5));
206
213
  }
207
214
 
208
215
  /**
@@ -238,22 +245,19 @@ export abstract class ExecuteScriptWithArguments extends Interaction {
238
245
  */
239
246
  class ExecuteAsynchronousScript extends ExecuteScriptWithArguments {
240
247
  withArguments(...args: Array<Answerable<any>>): Interaction {
241
- return new ExecuteAsynchronousScript(this.script, args);
248
+ return new ExecuteAsynchronousScript(
249
+ args.length > 0
250
+ ? d `#actor executes an asynchronous script with arguments: ${ args }`
251
+ : this.description,
252
+ this.script,
253
+ args,
254
+ );
242
255
  }
243
256
 
244
257
  protected async executeAs(actor: UsesAbilities & AnswersQuestions, args: any[]): Promise<any> {
245
258
  const page = await BrowseTheWeb.as(actor).currentPage();
246
259
  return page.executeAsyncScript(this.script as unknown as any, ...args); // todo: fix types
247
260
  }
248
-
249
- /**
250
- * @inheritDoc
251
- */
252
- toString(): string {
253
- return this.args.length > 0
254
- ? d `#actor executes an asynchronous script with arguments: ${ this.args }`
255
- : `#actor executes an asynchronous script`;
256
- }
257
261
  }
258
262
 
259
263
  /**
@@ -264,7 +268,7 @@ class ExecuteAsynchronousScript extends ExecuteScriptWithArguments {
264
268
  */
265
269
  class ExecuteScriptFromUrl extends Interaction {
266
270
  constructor(private readonly sourceUrl: string) {
267
- super();
271
+ super(`#actor executes a script from ${ sourceUrl }`);
268
272
  }
269
273
 
270
274
  /**
@@ -289,7 +293,7 @@ class ExecuteScriptFromUrl extends Interaction {
289
293
  callback();
290
294
  });
291
295
  script.addEventListener('error', function () {
292
- return callback('Couldn\'t load script from ' + sourceUrl);
296
+ return callback(`Couldn't load script from ${ sourceUrl }`);
293
297
  });
294
298
 
295
299
  script.src = sourceUrl;
@@ -304,13 +308,6 @@ class ExecuteScriptFromUrl extends Interaction {
304
308
  }
305
309
  });
306
310
  }
307
-
308
- /**
309
- * @inheritDoc
310
- */
311
- toString(): string {
312
- return `#actor executes a script from ${ this.sourceUrl }`;
313
- }
314
311
  }
315
312
 
316
313
  /**
@@ -319,20 +316,17 @@ class ExecuteScriptFromUrl extends Interaction {
319
316
  class ExecuteSynchronousScript extends ExecuteScriptWithArguments {
320
317
 
321
318
  withArguments(...args: Array<Answerable<any>>): Interaction {
322
- return new ExecuteSynchronousScript(this.script, args);
319
+ return new ExecuteSynchronousScript(
320
+ args.length > 0
321
+ ? d `#actor executes a synchronous script with arguments: ${ args }`
322
+ : this.description,
323
+ this.script,
324
+ args,
325
+ );
323
326
  }
324
327
 
325
328
  protected async executeAs(actor: UsesAbilities & AnswersQuestions, args: any[]): Promise<any> {
326
329
  const page = await BrowseTheWeb.as(actor).currentPage();
327
330
  return page.executeScript(this.script as unknown as any, ...args); // todo fix type
328
331
  }
329
-
330
- /**
331
- * @inheritDoc
332
- */
333
- toString(): string {
334
- return this.args.length > 0
335
- ? d `#actor executes a synchronous script with arguments: ${ this.args }`
336
- : `#actor executes a synchronous script`;
337
- }
338
332
  }
@@ -165,7 +165,7 @@ export class Navigate {
165
165
  */
166
166
  class NavigateToUrl extends Interaction {
167
167
  constructor(private readonly url: Answerable<string>) {
168
- super();
168
+ super(d`#actor navigates to ${ url }`);
169
169
  }
170
170
 
171
171
  /**
@@ -179,11 +179,4 @@ class NavigateToUrl extends Interaction {
179
179
  throw new TestCompromisedError(`Couldn't navigate to ${ url }`, error);
180
180
  });
181
181
  }
182
-
183
- /**
184
- * @inheritDoc
185
- */
186
- toString(): string {
187
- return d `#actor navigates to ${ this.url }`;
188
- }
189
182
  }
@@ -1,4 +1,5 @@
1
1
  import { Answerable, AnswersQuestions, d, Interaction, LogicError } from '@serenity-js/core';
2
+ import { FileSystemLocation } from '@serenity-js/core/lib/io';
2
3
 
3
4
  import { PageElement } from '../models';
4
5
 
@@ -12,13 +13,8 @@ import { PageElement } from '../models';
12
13
  */
13
14
  export abstract class PageElementInteraction extends Interaction {
14
15
 
15
- /**
16
- * @param description
17
- * A human-readable description to be used when reporting
18
- * this {@apilink Interaction}.
19
- */
20
- protected constructor(private readonly description: string) {
21
- super();
16
+ protected constructor(description: string, location: FileSystemLocation = Interaction.callerLocation(4)) {
17
+ super(description, location);
22
18
  }
23
19
 
24
20
  /**
@@ -40,11 +36,4 @@ export abstract class PageElementInteraction extends Interaction {
40
36
 
41
37
  return resolved;
42
38
  }
43
-
44
- /**
45
- * @inheritDoc
46
- */
47
- toString(): string {
48
- return this.description;
49
- }
50
39
  }
@@ -89,7 +89,7 @@ export class Press extends PageElementInteraction {
89
89
  * @param keys
90
90
  * A sequence of one or more keys to press
91
91
  */
92
- constructor(
92
+ protected constructor(
93
93
  private readonly keys: Answerable<Array<Key | string>>
94
94
  ) {
95
95
  super(d `#actor presses ${ keys }`);
@@ -117,7 +117,7 @@ class PressKeyInField extends PageElementInteraction {
117
117
  private readonly keys: Answerable<Array<Key | string>>,
118
118
  private readonly field: Answerable<PageElement> /* todo | Question<AlertPromise> | AlertPromise */,
119
119
  ) {
120
- super(d `#actor presses ${ keys } in ${ field }`);
120
+ super(d `#actor presses ${ keys } in ${ field }`, Interaction.callerLocation(3));
121
121
  }
122
122
 
123
123
  /**
@@ -62,7 +62,7 @@ export class Scroll extends Interaction {
62
62
  }
63
63
 
64
64
  protected constructor(private readonly element: Answerable<PageElement>) {
65
- super();
65
+ super(d`#actor scrolls to ${ element }`);
66
66
  }
67
67
 
68
68
  /**
@@ -73,11 +73,4 @@ export class Scroll extends Interaction {
73
73
 
74
74
  return target.scrollIntoView();
75
75
  }
76
-
77
- /**
78
- * @inheritDoc
79
- */
80
- toString(): string {
81
- return d`#actor scrolls to ${ this.element }`;
82
- }
83
76
  }
@@ -114,7 +114,7 @@ export class Switch extends Interaction {
114
114
  }
115
115
 
116
116
  protected constructor(private readonly switchable: Answerable<Switchable>) {
117
- super();
117
+ super(`#actor switches to ${ switchable }`);
118
118
  }
119
119
 
120
120
  /**
@@ -138,13 +138,6 @@ export class Switch extends Interaction {
138
138
 
139
139
  await switchable.switchTo();
140
140
  }
141
-
142
- /**
143
- * @inheritDoc
144
- */
145
- toString(): string {
146
- return `#actor switches to ${ this.switchable }`;
147
- }
148
141
  }
149
142
 
150
143
  /**
@@ -155,7 +148,7 @@ class SwitchAndPerformActivities extends Task {
155
148
  private readonly switchable: Answerable<Switchable>,
156
149
  private readonly activities: Activity[]
157
150
  ) {
158
- super();
151
+ super(`#actor switches to ${ switchable }`);
159
152
  }
160
153
 
161
154
  /**
@@ -173,11 +166,4 @@ class SwitchAndPerformActivities extends Task {
173
166
 
174
167
  await origin.switchBack();
175
168
  }
176
-
177
- /**
178
- * @inheritDoc
179
- */
180
- toString(): string {
181
- return `#actor switches to ${ this.switchable }`;
182
- }
183
169
  }
@@ -44,7 +44,7 @@ export class TakeScreenshot extends Interaction {
44
44
  }
45
45
 
46
46
  protected constructor(private readonly name: Answerable<string>) {
47
- super();
47
+ super(d`#actor takes a screenshot of ${ name }`);
48
48
  }
49
49
 
50
50
  /**
@@ -60,11 +60,4 @@ export class TakeScreenshot extends Interaction {
60
60
  new Name(name),
61
61
  );
62
62
  }
63
-
64
- /**
65
- * @inheritDoc
66
- */
67
- toString(): string {
68
- return d `#actor takes a screenshot of ${this.name}`;
69
- }
70
63
  }
@@ -114,7 +114,9 @@ export abstract class PageElement<Native_Element_Type = any> implements Optional
114
114
  * is present in the [Document Object Model (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model),
115
115
  * `false` otherwise.
116
116
  */
117
- abstract isPresent(): Promise<boolean>;
117
+ async isPresent(): Promise<boolean> {
118
+ return this.locator.isPresent();
119
+ }
118
120
 
119
121
  /**
120
122
  * Resolves to `true` when the underlying element:
@@ -1,3 +1,5 @@
1
+ import { Optional } from '@serenity-js/core';
2
+
1
3
  /**
2
4
  * {@apilink RootLocator} represents the context in which {@apilink Locator} looks for {@apilink PageElement} or {@apilink PageElements}.
3
5
  * This context is either a parent element, or some representation of the top-level browsing context.
@@ -10,10 +12,11 @@
10
12
  *
11
13
  * @group Models
12
14
  */
13
- export abstract class RootLocator<Native_Element_Type> {
15
+ export abstract class RootLocator<Native_Element_Type> implements Optional {
14
16
  public abstract switchToFrame(element: Native_Element_Type): Promise<void>;
15
17
  public abstract switchToParentFrame(): Promise<void>;
16
18
  public abstract switchToMainFrame(): Promise<void>;
19
+ public abstract isPresent(): Promise<boolean>;
17
20
 
18
21
  public abstract nativeElement(): Promise<Partial<Native_Element_Type>>;
19
22