@serenity-js/protractor 3.22.4 → 3.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
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.23.1](https://github.com/serenity-js/serenity-js/compare/v3.23.0...v3.23.1) (2024-05-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **deps:** update dependency axios to v1.7.0 ([7baf7c3](https://github.com/serenity-js/serenity-js/commit/7baf7c340f63ab7a7cf661be3a3835087e168c80))
12
+ * **rest:** upgraded Axios to 1.7.1 ([83566b7](https://github.com/serenity-js/serenity-js/commit/83566b73f3ccd4f0db222c841a95fc2f428759b8))
13
+
14
+
15
+
16
+
17
+
18
+ # [3.23.0](https://github.com/serenity-js/serenity-js/compare/v3.22.4...v3.23.0) (2024-05-12)
19
+
20
+
21
+ ### Features
22
+
23
+ * **protractor:** standardised ExecuteScript argument transmission across all web integration tools ([1a08f47](https://github.com/serenity-js/serenity-js/commit/1a08f47c32a01af76cafae55af23582167e2bd88))
24
+ * **web:** scripts injected into the browser accept data structures containing PageElement objects ([2fbddf5](https://github.com/serenity-js/serenity-js/commit/2fbddf5d78d2965aecd6786b020c93ea079bdaf1))
25
+
26
+
27
+
28
+
29
+
6
30
  ## [3.22.4](https://github.com/serenity-js/serenity-js/compare/v3.22.3...v3.22.4) (2024-05-07)
7
31
 
8
32
  **Note:** Version bump only for package @serenity-js/protractor
@@ -1,8 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import type { CorrelationId } from '@serenity-js/core/lib/model';
3
- import type { Cookie, CookieData, ModalDialogHandler, PageElement, PageElements, Selector } from '@serenity-js/web';
4
- import { Key, Page } from '@serenity-js/web';
5
- import type { ElementFinder, ProtractorBrowser } from 'protractor';
3
+ import type { Cookie, CookieData, ModalDialogHandler, PageElements, Selector } from '@serenity-js/web';
4
+ import { Key, Page, PageElement } from '@serenity-js/web';
5
+ import type * as protractor from 'protractor';
6
6
  import { URL } from 'url';
7
7
  import type { ProtractorBrowsingSession } from './ProtractorBrowsingSession';
8
8
  import type { ProtractorErrorHandler } from './ProtractorErrorHandler';
@@ -11,17 +11,15 @@ import type { ProtractorErrorHandler } from './ProtractorErrorHandler';
11
11
  *
12
12
  * @group Models
13
13
  */
14
- export declare class ProtractorPage extends Page<ElementFinder> {
14
+ export declare class ProtractorPage extends Page<protractor.ElementFinder> {
15
15
  private readonly browser;
16
16
  private readonly errorHandler;
17
- /**
18
- * @private
19
- */
20
17
  private lastScriptExecutionSummary;
21
- constructor(session: ProtractorBrowsingSession, browser: ProtractorBrowser, modalDialogHandler: ModalDialogHandler, errorHandler: ProtractorErrorHandler, pageId: CorrelationId);
22
- createPageElement(nativeElement: ElementFinder): PageElement<ElementFinder>;
23
- locate(selector: Selector): PageElement<ElementFinder>;
24
- locateAll(selector: Selector): PageElements<ElementFinder>;
18
+ private dehydrator;
19
+ constructor(session: ProtractorBrowsingSession, browser: protractor.ProtractorBrowser, modalDialogHandler: ModalDialogHandler, errorHandler: ProtractorErrorHandler, pageId: CorrelationId);
20
+ createPageElement(nativeElement: protractor.ElementFinder): PageElement<protractor.ElementFinder>;
21
+ locate(selector: Selector): PageElement<protractor.ElementFinder>;
22
+ locateAll(selector: Selector): PageElements<protractor.ElementFinder>;
25
23
  /**
26
24
  * If set to `false`, Protractor will not wait for Angular 1.x `$http` and `$timeout`
27
25
  * tasks to complete before interacting with the browser.
@@ -1 +1 @@
1
- {"version":3,"file":"ProtractorPage.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/ProtractorPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtractorPage.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/ProtractorPage.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,32 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.ProtractorPage = void 0;
4
27
  const core_1 = require("@serenity-js/core");
5
28
  const web_1 = require("@serenity-js/web");
29
+ const scripts = __importStar(require("@serenity-js/web/lib/scripts"));
6
30
  const url_1 = require("url");
7
31
  const promised_1 = require("../promised");
8
32
  const locators_1 = require("./locators");
@@ -17,10 +41,13 @@ const ProtractorPageElement_1 = require("./ProtractorPageElement");
17
41
  class ProtractorPage extends web_1.Page {
18
42
  browser;
19
43
  errorHandler;
20
- /**
21
- * @private
22
- */
23
44
  lastScriptExecutionSummary;
45
+ /* eslint-disable unicorn/consistent-function-scoping */
46
+ dehydrator = new web_1.ArgumentDehydrator((item) => item instanceof web_1.PageElement, async (item) => {
47
+ const nativeElement = await item.nativeElement();
48
+ return nativeElement.getWebElement();
49
+ });
50
+ /* eslint-enable */
24
51
  constructor(session, browser, modalDialogHandler, errorHandler, pageId) {
25
52
  super(session, new locators_1.ProtractorRootLocator(browser), modalDialogHandler, pageId);
26
53
  this.browser = browser;
@@ -111,29 +138,33 @@ class ProtractorPage extends web_1.Page {
111
138
  });
112
139
  }
113
140
  async executeScript(script, ...args) {
114
- const innerArguments = [];
115
- for (const arg of args) {
116
- const innerArgument = arg instanceof ProtractorPageElement_1.ProtractorPageElement
117
- ? await arg.nativeElement()
118
- : arg;
119
- innerArguments.push(innerArgument);
120
- }
121
- const result = await this.inContextOfThisPage(() => {
122
- return (0, promised_1.promised)(this.browser.executeScript(script, ...innerArguments));
141
+ const serialisedScript = typeof script === 'function'
142
+ ? String(script)
143
+ : String(`function script() { ${script} }`);
144
+ const executableScript = new Function(`
145
+ var parameters = (${scripts.rehydrate}).apply(null, arguments);
146
+ return (${serialisedScript}).apply(null, parameters);
147
+ `);
148
+ const result = await this.inContextOfThisPage(async () => {
149
+ const dehydratedArguments = await this.dehydrator.dehydrate(args);
150
+ return (0, promised_1.promised)(this.browser.executeScript(executableScript, ...dehydratedArguments));
123
151
  });
124
152
  this.lastScriptExecutionSummary = new LastScriptExecutionSummary(result);
125
153
  return result;
126
154
  }
127
155
  async executeAsyncScript(script, ...args) {
128
- const parameters = [];
129
- for (const arg of args) {
130
- const parameter = arg instanceof ProtractorPageElement_1.ProtractorPageElement
131
- ? await arg.nativeElement()
132
- : arg;
133
- parameters.push(parameter);
134
- }
135
- const result = await this.inContextOfThisPage(() => {
136
- return (0, promised_1.promised)(this.browser.executeAsyncScript(script, ...parameters));
156
+ const serialisedScript = typeof script === 'function'
157
+ ? String(script)
158
+ : String(`function script() { ${script} }`);
159
+ const executableScript = new Function(`
160
+ var args = Array.prototype.slice.call(arguments, 0, -1);
161
+ var callback = arguments[arguments.length - 1];
162
+ var parameters = (${scripts.rehydrate}).apply(null, args);
163
+ (${serialisedScript}).apply(null, parameters.concat(callback));
164
+ `);
165
+ const result = await this.inContextOfThisPage(async () => {
166
+ const dehydratedArguments = await this.dehydrator.dehydrate(args);
167
+ return (0, promised_1.promised)(this.browser.executeAsyncScript(executableScript, ...dehydratedArguments));
137
168
  });
138
169
  this.lastScriptExecutionSummary = new LastScriptExecutionSummary(result);
139
170
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ProtractorPage.js","sourceRoot":"","sources":["../../../src/screenplay/models/ProtractorPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtractorPage.js","sourceRoot":"","sources":["../../../src/screenplay/models/ProtractorPage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/protractor",
3
- "version": "3.22.4",
3
+ "version": "3.23.1",
4
4
  "description": "Test your web apps with Serenity/JS",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -49,9 +49,9 @@
49
49
  "node": "^16.13 || ^18.12 || ^20"
50
50
  },
51
51
  "dependencies": {
52
- "@serenity-js/core": "3.22.4",
53
- "@serenity-js/rest": "3.22.4",
54
- "@serenity-js/web": "3.22.4",
52
+ "@serenity-js/core": "3.23.1",
53
+ "@serenity-js/rest": "3.23.1",
54
+ "@serenity-js/web": "3.23.1",
55
55
  "deepmerge": "4.3.1",
56
56
  "query-selector-shadow-dom": "1.0.1",
57
57
  "tiny-types": "1.22.0"
@@ -76,17 +76,17 @@
76
76
  },
77
77
  "devDependencies": {
78
78
  "@integration/testing-tools": "3.0.0",
79
- "@serenity-js/assertions": "3.22.4",
80
- "@serenity-js/cucumber": "3.22.4",
81
- "@serenity-js/jasmine": "3.22.4",
82
- "@serenity-js/local-server": "3.22.4",
83
- "@serenity-js/mocha": "3.22.4",
79
+ "@serenity-js/assertions": "3.23.1",
80
+ "@serenity-js/cucumber": "3.23.1",
81
+ "@serenity-js/jasmine": "3.23.1",
82
+ "@serenity-js/local-server": "3.23.1",
83
+ "@serenity-js/mocha": "3.23.1",
84
84
  "@serenity-js/web": "3.1.1",
85
85
  "@types/chai": "4.3.16",
86
86
  "@types/express": "4.17.21",
87
87
  "@types/html-minifier": "4.0.5",
88
88
  "@types/mocha": "10.0.6",
89
- "axios": "1.6.8",
89
+ "axios": "1.7.1",
90
90
  "body-parser": "1.20.2",
91
91
  "c8": "9.1.0",
92
92
  "cross-env": "7.0.3",
@@ -99,5 +99,5 @@
99
99
  "ts-node": "10.9.2",
100
100
  "typescript": "5.2.2"
101
101
  },
102
- "gitHead": "f5db024cf16bf75489b55253dec6ef6e66114728"
102
+ "gitHead": "6bb08ce04a5590660704eed74334396ccca42a33"
103
103
  }
@@ -1,8 +1,9 @@
1
1
  import { List, LogicError } from '@serenity-js/core';
2
2
  import type { CorrelationId } from '@serenity-js/core/lib/model';
3
- import type { Cookie, CookieData, ModalDialogHandler, PageElement, PageElements,Selector } from '@serenity-js/web';
4
- import { BrowserWindowClosedError, Key, Page, PageElementsLocator } from '@serenity-js/web';
5
- import type { ElementFinder, ProtractorBrowser } from 'protractor';
3
+ import type { Cookie, CookieData, ModalDialogHandler, PageElements, Selector } from '@serenity-js/web';
4
+ import { ArgumentDehydrator, BrowserWindowClosedError, Key, Page, PageElement, PageElementsLocator } from '@serenity-js/web';
5
+ import * as scripts from '@serenity-js/web/lib/scripts';
6
+ import type * as protractor from 'protractor';
6
7
  import { URL } from 'url';
7
8
 
8
9
  import { promised } from '../promised';
@@ -18,16 +19,23 @@ import { ProtractorPageElement } from './ProtractorPageElement';
18
19
  *
19
20
  * @group Models
20
21
  */
21
- export class ProtractorPage extends Page<ElementFinder> {
22
+ export class ProtractorPage extends Page<protractor.ElementFinder> {
22
23
 
23
- /**
24
- * @private
25
- */
26
24
  private lastScriptExecutionSummary: LastScriptExecutionSummary;
27
25
 
26
+ /* eslint-disable unicorn/consistent-function-scoping */
27
+ private dehydrator: ArgumentDehydrator<PageElement<protractor.ElementFinder>, protractor.WebElement> = new ArgumentDehydrator(
28
+ (item: any): item is PageElement<protractor.ElementFinder> => item instanceof PageElement,
29
+ async (item: PageElement<protractor.ElementFinder>) => {
30
+ const nativeElement = await item.nativeElement();
31
+ return nativeElement.getWebElement();
32
+ },
33
+ );
34
+ /* eslint-enable */
35
+
28
36
  constructor(
29
37
  session: ProtractorBrowsingSession,
30
- private readonly browser: ProtractorBrowser,
38
+ private readonly browser: protractor.ProtractorBrowser,
31
39
  modalDialogHandler: ModalDialogHandler,
32
40
  private readonly errorHandler: ProtractorErrorHandler,
33
41
  pageId: CorrelationId
@@ -40,7 +48,7 @@ export class ProtractorPage extends Page<ElementFinder> {
40
48
  );
41
49
  }
42
50
 
43
- createPageElement(nativeElement: ElementFinder): PageElement<ElementFinder> {
51
+ createPageElement(nativeElement: protractor.ElementFinder): PageElement<protractor.ElementFinder> {
44
52
  return new ProtractorPageElement(
45
53
  new ProtractorExistingElementLocator(
46
54
  this.rootLocator as ProtractorRootLocator,
@@ -51,13 +59,13 @@ export class ProtractorPage extends Page<ElementFinder> {
51
59
  )
52
60
  }
53
61
 
54
- locate(selector: Selector): PageElement<ElementFinder> {
62
+ locate(selector: Selector): PageElement<protractor.ElementFinder> {
55
63
  return new ProtractorPageElement(
56
64
  new ProtractorLocator(this.rootLocator, selector, this.errorHandler)
57
65
  )
58
66
  }
59
67
 
60
- locateAll(selector: Selector): PageElements<ElementFinder> {
68
+ locateAll(selector: Selector): PageElements<protractor.ElementFinder> {
61
69
  return List.of(
62
70
  new PageElementsLocator(
63
71
  new ProtractorLocator(this.rootLocator, selector, this.errorHandler)
@@ -155,17 +163,21 @@ export class ProtractorPage extends Page<ElementFinder> {
155
163
  script: string | ((...parameters: InnerArguments) => Result),
156
164
  ...args: InnerArguments
157
165
  ): Promise<Result> {
158
- const innerArguments = [] as InnerArguments;
159
- for (const arg of args) {
160
- const innerArgument = arg instanceof ProtractorPageElement
161
- ? await arg.nativeElement()
162
- : arg;
163
166
 
164
- innerArguments.push(innerArgument);
165
- }
167
+ const serialisedScript = typeof script === 'function'
168
+ ? String(script)
169
+ : String(`function script() { ${ script } }`);
170
+
171
+ const executableScript = new Function(`
172
+ var parameters = (${ scripts.rehydrate }).apply(null, arguments);
173
+ return (${ serialisedScript }).apply(null, parameters);
174
+ `);
166
175
 
167
- const result = await this.inContextOfThisPage<Result>(() => {
168
- return promised(this.browser.executeScript(script, ...innerArguments));
176
+ const result = await this.inContextOfThisPage<Result>(async () => {
177
+
178
+ const dehydratedArguments = await this.dehydrator.dehydrate(args);
179
+
180
+ return promised(this.browser.executeScript(executableScript, ...dehydratedArguments));
169
181
  });
170
182
 
171
183
  this.lastScriptExecutionSummary = new LastScriptExecutionSummary(result);
@@ -177,17 +189,22 @@ export class ProtractorPage extends Page<ElementFinder> {
177
189
  script: string | ((...args: [...parameters: Parameters, callback: (result: Result) => void]) => void),
178
190
  ...args: Parameters
179
191
  ): Promise<Result> {
180
- const parameters = [] as Parameters;
181
- for (const arg of args) {
182
- const parameter = arg instanceof ProtractorPageElement
183
- ? await arg.nativeElement()
184
- : arg;
192
+ const serialisedScript = typeof script === 'function'
193
+ ? String(script)
194
+ : String(`function script() { ${ script } }`);
185
195
 
186
- parameters.push(parameter);
187
- }
196
+ const executableScript = new Function(`
197
+ var args = Array.prototype.slice.call(arguments, 0, -1);
198
+ var callback = arguments[arguments.length - 1];
199
+ var parameters = (${ scripts.rehydrate }).apply(null, args);
200
+ (${ serialisedScript }).apply(null, parameters.concat(callback));
201
+ `);
202
+
203
+ const result = await this.inContextOfThisPage<Result>(async () => {
204
+
205
+ const dehydratedArguments = await this.dehydrator.dehydrate(args);
188
206
 
189
- const result = await this.inContextOfThisPage<Result>(() => {
190
- return promised(this.browser.executeAsyncScript(script, ...parameters));
207
+ return promised(this.browser.executeAsyncScript(executableScript, ...dehydratedArguments));
191
208
  });
192
209
 
193
210
  this.lastScriptExecutionSummary = new LastScriptExecutionSummary(result);