@serenity-js/playwright-test 3.10.3 → 3.11.0
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 +24 -0
- package/lib/api/test-api.d.ts.map +1 -1
- package/lib/api/test-api.js +29 -2
- package/lib/api/test-api.js.map +1 -1
- package/package.json +8 -7
- package/src/api/test-api.ts +45 -9
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.11.0](https://github.com/serenity-js/serenity-js/compare/v3.10.4...v3.11.0) (2023-10-03)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **playwright-test:** enabled the ability to CallAnApi for all default actors ([436cde5](https://github.com/serenity-js/serenity-js/commit/436cde5283c14cea420000389d7c2c73e6122764)), closes [#1876](https://github.com/serenity-js/serenity-js/issues/1876)
|
|
12
|
+
* **playwright-test:** explicit proxy config will override env variables for REST interaction ([1c277d6](https://github.com/serenity-js/serenity-js/commit/1c277d6e45064fbb4ab3432c11d125f529268b5c)), closes [#1949](https://github.com/serenity-js/serenity-js/issues/1949)
|
|
13
|
+
* **web:** ability to CallAnApi is now available by default ([dfaf8e4](https://github.com/serenity-js/serenity-js/commit/dfaf8e4f4cb40f9be99624f0d616ebcf012c1fb0)), closes [#1876](https://github.com/serenity-js/serenity-js/issues/1876)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [3.10.4](https://github.com/serenity-js/serenity-js/compare/v3.10.3...v3.10.4) (2023-09-22)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **deps:** update playwright dependencies to ^1.38.1 ([0072ddb](https://github.com/serenity-js/serenity-js/commit/0072ddbe42cc147e9cce5a7bca79bc87c707e1ce))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [3.10.3](https://github.com/serenity-js/serenity-js/compare/v3.10.2...v3.10.3) (2023-09-15)
|
|
7
31
|
|
|
8
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACX,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-api.d.ts","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACX,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,EAAE,oBAAoB,GAAG,uBAAuB,CAiIrL,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC,GACtG;IACI;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IACpL,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrC,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,CAAA;AAoBL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,EAAE,oKAAS,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,IAAI,oKAAW,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,QAAQ,kBAAe,CAAC;AAErC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,UAAU;;;CAAiB,CAAC;AAEzC,eAAO,MAAM,SAAS;;;CAAgB,CAAC;AAEvC,eAAO,MAAM,QAAQ;;;CAAe,CAAC;AAErC,eAAO,MAAM,MAAM,mCAAa,CAAC;AAEjC,eAAO,MAAM,WAAW,gbAAkB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EACzG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,gBAAgB,GAAG,QAAQ,EAAE,UAAU,CAAC,CAGpF"}
|
package/lib/api/test-api.js
CHANGED
|
@@ -29,6 +29,7 @@ const core_1 = require("@serenity-js/core");
|
|
|
29
29
|
const events_1 = require("@serenity-js/core/lib/events");
|
|
30
30
|
const model_1 = require("@serenity-js/core/lib/model");
|
|
31
31
|
const playwright_1 = require("@serenity-js/playwright");
|
|
32
|
+
const rest_1 = require("@serenity-js/rest");
|
|
32
33
|
const web_1 = require("@serenity-js/web");
|
|
33
34
|
const os = __importStar(require("os"));
|
|
34
35
|
const tiny_types_1 = require("tiny-types");
|
|
@@ -38,8 +39,14 @@ const serenitySelectorEngines = new playwright_1.SerenitySelectorEngines();
|
|
|
38
39
|
exports.fixtures = {
|
|
39
40
|
actors: [
|
|
40
41
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
41
|
-
async ({ contextOptions, page,
|
|
42
|
-
await use(core_1.Cast.where(actor => actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.usingPage(page, contextOptions), core_1.TakeNotes.usingAnEmptyNotepad()
|
|
42
|
+
async ({ contextOptions, baseURL, extraHTTPHeaders, page, proxy }, use) => {
|
|
43
|
+
await use(core_1.Cast.where(actor => actor.whoCan(playwright_1.BrowseTheWebWithPlaywright.usingPage(page, contextOptions), core_1.TakeNotes.usingAnEmptyNotepad(), rest_1.CallAnApi.using({
|
|
44
|
+
baseURL: baseURL,
|
|
45
|
+
headers: extraHTTPHeaders,
|
|
46
|
+
proxy: proxy && proxy?.server
|
|
47
|
+
? asProxyConfig(proxy)
|
|
48
|
+
: undefined,
|
|
49
|
+
}))));
|
|
43
50
|
},
|
|
44
51
|
{ option: true },
|
|
45
52
|
],
|
|
@@ -411,4 +418,24 @@ function asDuration(maybeDuration) {
|
|
|
411
418
|
function asCast(maybeCast) {
|
|
412
419
|
return (0, tiny_types_1.ensure)('actors', maybeCast, (0, tiny_types_1.property)('prepare', (0, tiny_types_1.isFunction)()));
|
|
413
420
|
}
|
|
421
|
+
/**
|
|
422
|
+
* @private
|
|
423
|
+
* @param proxy
|
|
424
|
+
*/
|
|
425
|
+
function asProxyConfig(proxy) {
|
|
426
|
+
// Playwright defaults to http when proxy.server does not define the protocol
|
|
427
|
+
// See https://playwright.dev/docs/api/class-testoptions#test-options-proxy
|
|
428
|
+
const hasProtocol = /[\dA-Za-z]+:\/\//.test(proxy.server);
|
|
429
|
+
const proxyUrl = hasProtocol
|
|
430
|
+
? new URL(proxy.server)
|
|
431
|
+
: new URL(`http://${proxy.server}`);
|
|
432
|
+
const host = proxyUrl.hostname;
|
|
433
|
+
const port = proxyUrl.port
|
|
434
|
+
? Number(proxyUrl.port)
|
|
435
|
+
: undefined;
|
|
436
|
+
const auth = proxy.username
|
|
437
|
+
? { username: proxy.username, password: proxy.password || '' }
|
|
438
|
+
: undefined;
|
|
439
|
+
return { host, port, auth };
|
|
440
|
+
}
|
|
414
441
|
//# sourceMappingURL=test-api.js.map
|
package/lib/api/test-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AASA,2CAA8D;AAC9D,4CAA+G;AAC/G,yDAA0E;AAC1E,uDAAsE;AACtE,wDAA8F;AAC9F,0CAAsE;AACtE,uCAAyB;AAEzB,2CAA0D;AAE1D,0CAIqB;AAErB,6FAA0F;AAI1F,MAAM,uBAAuB,GAAG,IAAI,oCAAuB,EAAE,CAAC;AAEjD,QAAA,QAAQ,GAAqK;IACtL,MAAM,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"test-api.js","sourceRoot":"","sources":["../../src/api/test-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serenity-js/playwright-test",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "Serenity/JS reporter and test APIs for Playwright Test",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jan Molak",
|
|
@@ -44,22 +44,23 @@
|
|
|
44
44
|
"node": "^16.13 || ^18.12 || ^20"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@playwright/test": "^1.38.
|
|
48
|
-
"@serenity-js/core": "3.
|
|
49
|
-
"@serenity-js/playwright": "3.
|
|
50
|
-
"@serenity-js/
|
|
47
|
+
"@playwright/test": "^1.38.1",
|
|
48
|
+
"@serenity-js/core": "3.11.0",
|
|
49
|
+
"@serenity-js/playwright": "3.11.0",
|
|
50
|
+
"@serenity-js/rest": "3.11.0",
|
|
51
|
+
"@serenity-js/web": "3.11.0",
|
|
51
52
|
"deepmerge": "^4.3.1",
|
|
52
53
|
"tiny-types": "^1.20.0"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@integration/testing-tools": "3.0.0",
|
|
56
57
|
"@types/chai": "^4.3.6",
|
|
57
|
-
"@types/mocha": "^10.0.
|
|
58
|
+
"@types/mocha": "^10.0.2",
|
|
58
59
|
"c8": "8.0.1",
|
|
59
60
|
"mocha": "^10.2.0",
|
|
60
61
|
"mocha-multi": "^1.1.7",
|
|
61
62
|
"ts-node": "^10.9.1",
|
|
62
63
|
"typescript": "5.1.6"
|
|
63
64
|
},
|
|
64
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "4cd38cd3f6c8ea72e7e2776d76af9fa8a0672265"
|
|
65
66
|
}
|
package/src/api/test-api.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { AnsiDiffFormatter, Cast, Duration, serenity as serenityInstance, TakeNo
|
|
|
12
12
|
import { SceneFinishes, SceneTagged } from '@serenity-js/core/lib/events';
|
|
13
13
|
import { BrowserTag, PlatformTag } from '@serenity-js/core/lib/model';
|
|
14
14
|
import { BrowseTheWebWithPlaywright, SerenitySelectorEngines } from '@serenity-js/playwright';
|
|
15
|
+
import { CallAnApi } from '@serenity-js/rest';
|
|
15
16
|
import { Photographer, TakePhotosOfFailures } from '@serenity-js/web';
|
|
16
17
|
import * as os from 'os';
|
|
17
18
|
import type { JSONValue } from 'tiny-types';
|
|
@@ -32,11 +33,18 @@ const serenitySelectorEngines = new SerenitySelectorEngines();
|
|
|
32
33
|
export const fixtures: Fixtures<Omit<SerenityOptions, 'actors'> & SerenityFixtures, object, PlaywrightTestArgs & PlaywrightTestOptions, PlaywrightWorkerArgs & PlaywrightWorkerOptions> = {
|
|
33
34
|
actors: [
|
|
34
35
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
35
|
-
async ({ contextOptions, page,
|
|
36
|
+
async ({ contextOptions, baseURL, extraHTTPHeaders, page, proxy }, use): Promise<void> => {
|
|
36
37
|
await use(Cast.where(actor => actor.whoCan(
|
|
37
38
|
BrowseTheWebWithPlaywright.usingPage(page, contextOptions),
|
|
38
39
|
TakeNotes.usingAnEmptyNotepad(),
|
|
39
|
-
|
|
40
|
+
CallAnApi.using({
|
|
41
|
+
baseURL: baseURL,
|
|
42
|
+
headers: extraHTTPHeaders,
|
|
43
|
+
proxy: proxy && proxy?.server
|
|
44
|
+
? asProxyConfig(proxy)
|
|
45
|
+
: undefined,
|
|
46
|
+
}),
|
|
47
|
+
)));
|
|
40
48
|
},
|
|
41
49
|
{ option: true },
|
|
42
50
|
],
|
|
@@ -194,14 +202,14 @@ function createTestApi<TestArgs extends Record<string, any>, WorkerArgs extends
|
|
|
194
202
|
useFixtures<T extends Record<string, any>, W extends Record<string, any> = object>(customFixtures: Fixtures<T, W, TestArgs, WorkerArgs>): TestApi<TestArgs & T, WorkerArgs & W> {
|
|
195
203
|
return createTestApi(baseTest.extend(customFixtures));
|
|
196
204
|
},
|
|
197
|
-
beforeAll:
|
|
205
|
+
beforeAll: baseTest.beforeAll,
|
|
198
206
|
beforeEach: baseTest.beforeEach,
|
|
199
|
-
afterEach:
|
|
200
|
-
afterAll:
|
|
201
|
-
describe:
|
|
202
|
-
expect:
|
|
203
|
-
it:
|
|
204
|
-
test:
|
|
207
|
+
afterEach: baseTest.afterEach,
|
|
208
|
+
afterAll: baseTest.afterAll,
|
|
209
|
+
describe: baseTest.describe,
|
|
210
|
+
expect: baseTest.expect,
|
|
211
|
+
it: baseTest,
|
|
212
|
+
test: baseTest,
|
|
205
213
|
};
|
|
206
214
|
}
|
|
207
215
|
|
|
@@ -495,3 +503,31 @@ function asDuration(maybeDuration: number | Duration): Duration {
|
|
|
495
503
|
function asCast(maybeCast: unknown): Cast {
|
|
496
504
|
return ensure('actors', maybeCast as Cast, property('prepare', isFunction()));
|
|
497
505
|
}
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* @private
|
|
509
|
+
* @param proxy
|
|
510
|
+
*/
|
|
511
|
+
function asProxyConfig(proxy: PlaywrightTestOptions['proxy']): {
|
|
512
|
+
host: string,
|
|
513
|
+
port?: number,
|
|
514
|
+
auth?: { username: string, password: string }
|
|
515
|
+
} {
|
|
516
|
+
|
|
517
|
+
// Playwright defaults to http when proxy.server does not define the protocol
|
|
518
|
+
// See https://playwright.dev/docs/api/class-testoptions#test-options-proxy
|
|
519
|
+
const hasProtocol = /[\dA-Za-z]+:\/\//.test(proxy.server);
|
|
520
|
+
const proxyUrl = hasProtocol
|
|
521
|
+
? new URL(proxy.server)
|
|
522
|
+
: new URL(`http://${ proxy.server }`);
|
|
523
|
+
|
|
524
|
+
const host = proxyUrl.hostname;
|
|
525
|
+
const port = proxyUrl.port
|
|
526
|
+
? Number(proxyUrl.port)
|
|
527
|
+
: undefined;
|
|
528
|
+
const auth = proxy.username
|
|
529
|
+
? { username: proxy.username, password: proxy.password || '' }
|
|
530
|
+
: undefined;
|
|
531
|
+
|
|
532
|
+
return { host, port, auth };
|
|
533
|
+
}
|