@plan2net/typo3-playwright-toolkit 0.1.0 → 0.2.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/README.md +16 -0
- package/dist/builders/content-builder.d.ts.map +1 -1
- package/dist/builders/content-builder.js +5 -4
- package/dist/builders/content-builder.js.map +1 -1
- package/dist/builders/page-builder.d.ts +1 -0
- package/dist/builders/page-builder.d.ts.map +1 -1
- package/dist/builders/page-builder.js +25 -4
- package/dist/builders/page-builder.js.map +1 -1
- package/dist/builders/request-context.d.ts +10 -0
- package/dist/builders/request-context.d.ts.map +1 -1
- package/dist/builders/request-context.js +7 -0
- package/dist/builders/request-context.js.map +1 -1
- package/dist/checks/screenshot.d.ts +3 -0
- package/dist/checks/screenshot.d.ts.map +1 -1
- package/dist/checks/screenshot.js +5 -2
- package/dist/checks/screenshot.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/contract.d.ts +2 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +2 -0
- package/dist/contract.js.map +1 -1
- package/dist/global-setup.d.ts.map +1 -1
- package/dist/global-setup.js +3 -2
- package/dist/global-setup.js.map +1 -1
- package/dist/global-teardown.d.ts +4 -0
- package/dist/global-teardown.d.ts.map +1 -1
- package/dist/global-teardown.js +22 -1
- package/dist/global-teardown.js.map +1 -1
- package/dist/http/record-edit.d.ts +2 -0
- package/dist/http/record-edit.d.ts.map +1 -1
- package/dist/http/record-edit.js +4 -0
- package/dist/http/record-edit.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/inspect/cli.js +14 -1
- package/dist/inspect/cli.js.map +1 -1
- package/dist/inspect/replay-target.d.ts +3 -0
- package/dist/inspect/replay-target.d.ts.map +1 -0
- package/dist/inspect/replay-target.js +22 -0
- package/dist/inspect/replay-target.js.map +1 -0
- package/dist/scenario.d.ts +10 -0
- package/dist/scenario.d.ts.map +1 -1
- package/dist/scenario.js +33 -8
- package/dist/scenario.js.map +1 -1
- package/dist/state/ensure-state.d.ts.map +1 -1
- package/dist/state/ensure-state.js +4 -2
- package/dist/state/ensure-state.js.map +1 -1
- package/dist/state/scenario-outcome.d.ts +1 -1
- package/dist/state/scenario-outcome.d.ts.map +1 -1
- package/dist/state/scenario-outcome.js +6 -4
- package/dist/state/scenario-outcome.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -371,6 +371,22 @@ It reads the API secret from `var/playwright/api-secret` or from
|
|
|
371
371
|
`PLAYWRIGHT_TOOLKIT_SECRET`. On DDEV, `ddev playwright-inspect` wraps it. The links
|
|
372
372
|
log in as the pre-seeded backend user and live 15 minutes.
|
|
373
373
|
|
|
374
|
+
`--replay` prints a link into the database a replay run built, instead of the kept
|
|
375
|
+
test databases. Use it when the link that run printed has expired — it mints a new
|
|
376
|
+
one rather than rebuilding anything.
|
|
377
|
+
|
|
378
|
+
### Replay mode
|
|
379
|
+
|
|
380
|
+
`PW_REPLAY=1` runs every scenario's setup into one shared database rather than a
|
|
381
|
+
per-test one, so all the content the suite builds ends up in a single place you can
|
|
382
|
+
browse and export. `ddev playwright-replay` sets it, rebuilds that database from the
|
|
383
|
+
template first, and prints a backend link when the run ends.
|
|
384
|
+
|
|
385
|
+
What changes while it is set: every scenario uses the one fixed test ID
|
|
386
|
+
`REPLAY0000000000`, its content goes into a sysfolder named after it under the
|
|
387
|
+
fixture root, slugs keep no test-ID suffix, setups run once with no retry, the tests
|
|
388
|
+
themselves are skipped, and teardown drops nothing.
|
|
389
|
+
|
|
374
390
|
## Troubleshooting
|
|
375
391
|
|
|
376
392
|
**"No test ID for this request".** The builder received a page that the toolkit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-builder.d.ts","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvE,OAAO,
|
|
1
|
+
{"version":3,"file":"content-builder.d.ts","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvE,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGjG,qBAAa,cAAc;IACvB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;gBAE7C,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKhE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;;OAGG;IACH,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;CAWrE;AAED,cAAM,mBAAmB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB;IAI7E,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,cAAc,CAAC;IAN3B,OAAO,CAAC,OAAO,CAAyB;gBAG5B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACJ,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAA;IAKpD,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAKnC,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAkC1C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContent } from './content-factory.js';
|
|
2
2
|
import { saveRecord } from '../http/record-edit.js';
|
|
3
3
|
import { coerceFields } from './fields.js';
|
|
4
|
-
import { resolveRequestContext } from './request-context.js';
|
|
4
|
+
import { replayParentId, resolveRequestContext } from './request-context.js';
|
|
5
5
|
import { newRecordIdentifier } from './identifier.js';
|
|
6
6
|
export class ContentBuilder {
|
|
7
7
|
page;
|
|
@@ -41,12 +41,13 @@ class TypedContentBuilder {
|
|
|
41
41
|
async create() {
|
|
42
42
|
const context = resolveRequestContext(this.page, this.requestContext);
|
|
43
43
|
const identifier = newRecordIdentifier();
|
|
44
|
+
const pageId = replayParentId(context, this.pageId);
|
|
44
45
|
const fields = this.builder.getFields();
|
|
45
46
|
// CType and colPos are set below; an empty string means "the type did not
|
|
46
47
|
// set it".
|
|
47
48
|
const own = Object.fromEntries(Object.entries(fields).filter(([column, value]) => value !== '' && !['CType', 'colPos'].includes(column)));
|
|
48
49
|
const record = {
|
|
49
|
-
pid:
|
|
50
|
+
pid: pageId,
|
|
50
51
|
sys_language_uid: 0,
|
|
51
52
|
CType: fields.CType || this.builder.type,
|
|
52
53
|
colPos: fields.colPos ?? 0,
|
|
@@ -55,10 +56,10 @@ class TypedContentBuilder {
|
|
|
55
56
|
const uid = await saveRecord(this.page.request, context, {
|
|
56
57
|
table: 'tt_content',
|
|
57
58
|
identifier: identifier,
|
|
58
|
-
target: Number(
|
|
59
|
+
target: Number(pageId),
|
|
59
60
|
data: {
|
|
60
61
|
tt_content: { [identifier]: record },
|
|
61
|
-
...(this.builder.getAdditionalRecords?.(identifier,
|
|
62
|
+
...(this.builder.getAdditionalRecords?.(identifier, pageId) ?? {}),
|
|
62
63
|
},
|
|
63
64
|
});
|
|
64
65
|
return { id: String(uid) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-builder.js","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAuB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"content-builder.js","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-builder.d.ts","sourceRoot":"","sources":["../../src/builders/page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"page-builder.d.ts","sourceRoot":"","sources":["../../src/builders/page-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAwD,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAKhH,UAAU,MAAM;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAA;CACpE;AAKD,qBAAa,WAAW;IACpB,SAAS,CAAC,MAAM,EAAE,MAAM,CAOvB;IAED,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAY;IACpC,OAAO,CAAC,oBAAoB,CAAC,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;gBAE7C,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKhE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B,+EAA+E;IAC/E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAKjE,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa5B,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKvC,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAKhD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKtB,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBnE,OAAO,CAAC,SAAS;IAiBjB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,eAAe;CAK1B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { saveRecord } from '../http/record-edit.js';
|
|
2
|
-
import { requireTestId, resolveRequestContext } from './request-context.js';
|
|
2
|
+
import { replayParentId, requireTestId, resolveRequestContext } from './request-context.js';
|
|
3
3
|
import { coerceFields } from './fields.js';
|
|
4
4
|
import { newRecordIdentifier } from './identifier.js';
|
|
5
|
+
import { getToolkitConfig } from '../config.js';
|
|
5
6
|
const DEFAULT_CROP = '{"default":{"cropArea":{"x":0,"y":0,"width":1,"height":1},"selectedRatio":"NaN","focusArea":null}}';
|
|
6
7
|
export class PageBuilder {
|
|
7
8
|
fields = {
|
|
@@ -35,7 +36,10 @@ export class PageBuilder {
|
|
|
35
36
|
const testId = requireTestId(this.page, this.requestContext?.testId);
|
|
36
37
|
let normalizedSlug = slug.startsWith('/') ? slug : `/${slug}`;
|
|
37
38
|
normalizedSlug = normalizedSlug.endsWith('/') ? normalizedSlug.slice(0, -1) : normalizedSlug;
|
|
38
|
-
|
|
39
|
+
// One database, so nothing to keep apart, and the slugs stay exportable.
|
|
40
|
+
this.fields.slug = getToolkitConfig().replay
|
|
41
|
+
? normalizedSlug
|
|
42
|
+
: `${normalizedSlug}-${testId.toLowerCase()}`;
|
|
39
43
|
return this;
|
|
40
44
|
}
|
|
41
45
|
withExistingImage(fileId) {
|
|
@@ -52,16 +56,20 @@ export class PageBuilder {
|
|
|
52
56
|
}
|
|
53
57
|
async create() {
|
|
54
58
|
const context = resolveRequestContext(this.page, this.requestContext);
|
|
59
|
+
this.claimSlug(context);
|
|
55
60
|
const identifier = newRecordIdentifier();
|
|
61
|
+
const parentId = replayParentId(context, String(Number(this.fields.pid)));
|
|
56
62
|
const uid = await saveRecord(this.page.request, context, {
|
|
57
63
|
table: 'pages',
|
|
58
64
|
identifier,
|
|
59
|
-
target: Number(
|
|
65
|
+
target: Number(parentId),
|
|
60
66
|
data: {
|
|
61
|
-
pages: { [identifier]: this.pageFields() },
|
|
67
|
+
pages: { [identifier]: { ...this.pageFields(), pid: parentId } },
|
|
62
68
|
...this.mediaRecords(identifier),
|
|
63
69
|
},
|
|
64
70
|
});
|
|
71
|
+
// So its children keep it as their parent.
|
|
72
|
+
context.replayFolder?.ownPages.add(String(uid));
|
|
65
73
|
return { id: String(uid), slug: this.fields.slug || '' };
|
|
66
74
|
}
|
|
67
75
|
async update(pageId) {
|
|
@@ -77,6 +85,19 @@ export class PageBuilder {
|
|
|
77
85
|
});
|
|
78
86
|
return { id: pageId, slug: this.fields.slug || '' };
|
|
79
87
|
}
|
|
88
|
+
// TYPO3 would store the repeat elsewhere while create() still reports this slug.
|
|
89
|
+
claimSlug(context) {
|
|
90
|
+
const slug = this.fields.slug;
|
|
91
|
+
if ('string' !== typeof slug || '' === slug || !context.usedSlugs) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (context.usedSlugs.has(slug)) {
|
|
95
|
+
throw new Error(`[typo3-playwright-toolkit] This scenario already created a page with the slug "${slug}". ` +
|
|
96
|
+
'TYPO3 would store the second one under a different path, and every test reading it ' +
|
|
97
|
+
'would land on the first page. Give them distinct slugs.');
|
|
98
|
+
}
|
|
99
|
+
context.usedSlugs.add(slug);
|
|
100
|
+
}
|
|
80
101
|
/**
|
|
81
102
|
* A second record the page's own `media` field lists, which is what makes
|
|
82
103
|
* DataHandler link it once the page has a uid.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-builder.js","sourceRoot":"","sources":["../../src/builders/page-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAsB,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAuB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"page-builder.js","sourceRoot":"","sources":["../../src/builders/page-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/** TYPO3's own default for `BE/entryPoint`, which 11.5 and 12.4 have no setting for. */
|
|
2
2
|
export declare const DEFAULT_BACKEND_PATH = "/typo3";
|
|
3
|
+
/** Replay only: the scenario's folder and the pages it created inside it. */
|
|
4
|
+
export interface ReplayFolder {
|
|
5
|
+
id: string;
|
|
6
|
+
ownPages: Set<string>;
|
|
7
|
+
}
|
|
3
8
|
export interface RequestContext {
|
|
4
9
|
baseUrl: string;
|
|
5
10
|
/** Where the backend routes answer, from `BE/entryPoint`; the session endpoint reports it. */
|
|
@@ -7,7 +12,12 @@ export interface RequestContext {
|
|
|
7
12
|
testId: string;
|
|
8
13
|
/** For `record_edit`; the session endpoint hands it out. */
|
|
9
14
|
routeToken: string;
|
|
15
|
+
replayFolder?: ReplayFolder;
|
|
16
|
+
/** Slugs this scenario already created. */
|
|
17
|
+
usedSlugs?: Set<string>;
|
|
10
18
|
}
|
|
19
|
+
/** A fixture page as parent means the record moves into the folder; one the scenario made keeps it. */
|
|
20
|
+
export declare function replayParentId(context: RequestContext, parentId: string): string;
|
|
11
21
|
export interface RequestContextSource {
|
|
12
22
|
url(): string;
|
|
13
23
|
context(): unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/builders/request-context.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,WAAW,CAAA;AAE5C,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/builders/request-context.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,WAAW,CAAA;AAE5C,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,uGAAuG;AACvG,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,MAAM,WAAW,oBAAoB;IACjC,GAAG,IAAI,MAAM,CAAA;IACb,OAAO,IAAI,OAAO,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAM5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,GAAE,OAAO,CAAC,cAAc,CAAM,GACvC,cAAc,CAWhB"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { getToolkitConfig } from '../config.js';
|
|
2
2
|
/** TYPO3's own default for `BE/entryPoint`, which 11.5 and 12.4 have no setting for. */
|
|
3
3
|
export const DEFAULT_BACKEND_PATH = '/typo3';
|
|
4
|
+
/** A fixture page as parent means the record moves into the folder; one the scenario made keeps it. */
|
|
5
|
+
export function replayParentId(context, parentId) {
|
|
6
|
+
const folder = context.replayFolder;
|
|
7
|
+
return folder && !folder.ownPages.has(parentId) ? folder.id : parentId;
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* The fixtures put the test ID on the page and context; an explicit one overrides
|
|
6
11
|
* it. An empty ID is refused rather than sent, because the extension reads an
|
|
@@ -21,6 +26,8 @@ export function requireTestId(page, explicit) {
|
|
|
21
26
|
}
|
|
22
27
|
export function resolveRequestContext(page, explicit = {}) {
|
|
23
28
|
return {
|
|
29
|
+
replayFolder: explicit.replayFolder,
|
|
30
|
+
usedSlugs: explicit.usedSlugs,
|
|
24
31
|
// Never derived from page.url(): the request carries the API secret, and a
|
|
25
32
|
// page that navigated off-site must not decide where the builder posts it.
|
|
26
33
|
baseUrl: explicit.baseUrl ?? getToolkitConfig().testingURL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/builders/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../../src/builders/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAA;AAoB5C,uGAAuG;AACvG,MAAM,UAAU,cAAc,CAAC,OAAuB,EAAE,QAAgB;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAA;IAEnC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC1E,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAA0B;IACpD,OAAO,CACF,IAAkC,CAAC,MAAM;QACzC,IAAI,CAAC,OAAO,EAAwB,CAAC,MAAM;QAC5C,SAAS,CACZ,CAAA;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B,EAAE,QAAiB;IACvE,MAAM,MAAM,GAAG,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,8FAA8F;YAC1F,gFAAgF,CACvF,CAAA;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,IAA0B,EAC1B,WAAoC,EAAE;IAEtC,OAAO;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,UAAU;QAC1D,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,oBAAoB;QACzD,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC5C,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE;KACxC,CAAA;AACL,CAAC"}
|
|
@@ -13,6 +13,9 @@ export declare function resolveScreenshotTarget(target: Page | Locator, include?
|
|
|
13
13
|
export interface ScreenshotOptions extends PageAssertionsToHaveScreenshotOptions {
|
|
14
14
|
/** Shoot only this element. */
|
|
15
15
|
include?: string;
|
|
16
|
+
/** Replaces `hideBeforeScreenshot` for this shot; `[]` hides nothing. */
|
|
17
|
+
hide?: string[];
|
|
16
18
|
}
|
|
19
|
+
export declare function hiddenSelectors(configured: string[] | undefined, perCall: string[] | undefined): string[];
|
|
17
20
|
export declare function takeScreenshot(target: Page | Locator, name: string, options?: ScreenshotOptions): Promise<void>;
|
|
18
21
|
//# sourceMappingURL=screenshot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAA;AAW/F,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAM3D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpG;AAID,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AA6DD,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,OAAO,CAAC,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAM9C;AAED,MAAM,WAAW,iBAAkB,SAAQ,qCAAqC;IAC5E,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAA;AAW/F,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAM3D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpG;AAID,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AA6DD,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,OAAO,CAAC,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAM9C;AAED,MAAM,WAAW,iBAAkB,SAAQ,qCAAqC;IAC5E,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAEzG;AAED,wBAAsB,cAAc,CAChC,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
|
@@ -96,13 +96,16 @@ export function resolveScreenshotTarget(target, include) {
|
|
|
96
96
|
}
|
|
97
97
|
return { shot: target, wholePage: !('page' in target) };
|
|
98
98
|
}
|
|
99
|
+
export function hiddenSelectors(configured, perCall) {
|
|
100
|
+
return perCall ?? configured ?? [];
|
|
101
|
+
}
|
|
99
102
|
export async function takeScreenshot(target, name, options = {}) {
|
|
100
103
|
const config = getToolkitConfig();
|
|
101
|
-
const { include, ...screenshotOptions } = options;
|
|
104
|
+
const { include, hide, ...screenshotOptions } = options;
|
|
102
105
|
const { shot, wholePage } = resolveScreenshotTarget(target, include);
|
|
103
106
|
const page = 'page' in target ? target.page() : target;
|
|
104
107
|
await page.addStyleTag({ content: FREEZE_STYLES });
|
|
105
|
-
const hideStyles = buildHideStyles(config.hideBeforeScreenshot
|
|
108
|
+
const hideStyles = buildHideStyles(hiddenSelectors(config.hideBeforeScreenshot, hide));
|
|
106
109
|
if (hideStyles) {
|
|
107
110
|
await page.addStyleTag({ content: hideStyles });
|
|
108
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -85,6 +85,8 @@ export interface ToolkitConfig {
|
|
|
85
85
|
paths: ToolkitPaths;
|
|
86
86
|
/** Pins the run ID. Normally omitted — taken from PW_RUN_ID or minted. */
|
|
87
87
|
runId?: string;
|
|
88
|
+
/** Set by PW_REPLAY=1: run every setup into the base database instead of per-test ones. */
|
|
89
|
+
replay?: boolean;
|
|
88
90
|
cleanup?: ToolkitCleanupConfig;
|
|
89
91
|
accessibility?: ToolkitAccessibilityConfig;
|
|
90
92
|
csp?: ToolkitCspConfig;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAKzE,MAAM,MAAM,sBAAsB,GAAG,UAAU,uBAAuB,CAAA;AAEtE,MAAM,WAAW,uBAAuB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACvC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,UAAU,CAAA;IACzC,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,mFAAmF;AACnF,MAAM,WAAW,YAAY;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IAC/B,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CAChD;AAED,MAAM,WAAW,aAAa;IAC1B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,wFAAwF;IACxF,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IACrD,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClE,2DAA2D;IAC3D,KAAK,EAAE,YAAY,CAAA;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,aAAa,CAAC,EAAE,0BAA0B,CAAA;IAC1C,GAAG,CAAC,EAAE,gBAAgB,CAAA;IACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,gGAAgG;AAChG,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG;IAC5D,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACpE,CAAA;AAqDD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -50,6 +50,7 @@ export function defineToolkitConfig(config) {
|
|
|
50
50
|
testingURL: resolveTestingURL(config.testingURL),
|
|
51
51
|
paths: resolvePaths(config.paths),
|
|
52
52
|
runId: resolveRunId(config.runId),
|
|
53
|
+
replay: '1' === process.env.PW_REPLAY,
|
|
53
54
|
};
|
|
54
55
|
setToolkitConfig(resolved);
|
|
55
56
|
registerContentTypes(config.contentTypes ?? {});
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ToolkitConfig } from './config.js';
|
|
2
2
|
export declare const TEST_ID_HEADER = "X-Playwright-Test-Id";
|
|
3
3
|
export declare const TEST_ID_PATTERN: RegExp;
|
|
4
|
+
/** Replay's own test ID; the extension maps it to the throwaway base database. */
|
|
5
|
+
export declare const REPLAY_TEST_ID = "REPLAY0000000000";
|
|
4
6
|
export declare function generateTestId(): string;
|
|
5
7
|
/** Both headers, for one explicit request. */
|
|
6
8
|
export declare function toolkitHeaders(config: ToolkitConfig, testId: string): Record<string, string>;
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,eAAO,MAAM,cAAc,yBAAyB,CAAA;AACpD,eAAO,MAAM,eAAe,QAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,eAAO,MAAM,cAAc,yBAAyB,CAAA;AACpD,eAAO,MAAM,eAAe,QAAmB,CAAA;AAE/C,kFAAkF;AAClF,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAKhD,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK5F;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErE"}
|
package/dist/contract.js
CHANGED
|
@@ -2,6 +2,8 @@ import { randomInt } from 'crypto';
|
|
|
2
2
|
import { SECRET_HEADER, resolveApiSecret } from './http/api-secret.js';
|
|
3
3
|
export const TEST_ID_HEADER = 'X-Playwright-Test-Id';
|
|
4
4
|
export const TEST_ID_PATTERN = /^[A-Z0-9]{16}$/;
|
|
5
|
+
/** Replay's own test ID; the extension maps it to the throwaway base database. */
|
|
6
|
+
export const REPLAY_TEST_ID = 'REPLAY0000000000';
|
|
5
7
|
const TEST_ID_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
|
6
8
|
const TEST_ID_LENGTH = 16;
|
|
7
9
|
export function generateTestId() {
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAA;AAE/C,MAAM,gBAAgB,GAAG,sCAAsC,CAAA;AAC/D,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,UAAU,cAAc;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAc;IAChE,OAAO;QACH,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC;KAC5C,CAAA;AACL,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAc;IACzC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAA;AAE/C,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAA;AAEhD,MAAM,gBAAgB,GAAG,sCAAsC,CAAA;AAC/D,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,UAAU,cAAc;IAC1B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,MAAc;IAChE,OAAO;QACH,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC;KAC5C,CAAA;AACL,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,MAAc;IACzC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-setup.d.ts","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAMlE,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAK7D;AAED,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAuCpC;;;;GAIG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC3C,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED,wBAAsB,cAAc,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC7E,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,iBAAe,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"global-setup.d.ts","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAMlE,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAK7D;AAED,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAuCpC;;;;GAIG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC3C,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED,wBAAsB,cAAc,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC7E,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,iBAAe,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1C;AAED,eAAe,WAAW,CAAA"}
|
package/dist/global-setup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getToolkitConfig } from './config.js';
|
|
2
2
|
import { prepareRun } from './state/run-namespace.js';
|
|
3
|
-
import { TEST_ID_HEADER, generateTestId } from './contract.js';
|
|
3
|
+
import { REPLAY_TEST_ID, TEST_ID_HEADER, generateTestId } from './contract.js';
|
|
4
4
|
import { SECRET_HEADER, resolveApiSecret } from './http/api-secret.js';
|
|
5
5
|
import { registerSetupAttempt } from './state/attempt-registry.js';
|
|
6
6
|
export function preflightTestId(config) {
|
|
@@ -94,8 +94,9 @@ async function globalSetup() {
|
|
|
94
94
|
// Order matters: verify the engine before minting an ID, or a mismatch leaves
|
|
95
95
|
// behind a database teardown can no longer reach.
|
|
96
96
|
await verifyApiVersion(config);
|
|
97
|
+
// Replay checks its own database; a throwaway one its teardown never drops.
|
|
97
98
|
await runHealthCheck(config.testingURL, {
|
|
98
|
-
testId: preflightTestId(config),
|
|
99
|
+
testId: config.replay ? REPLAY_TEST_ID : preflightTestId(config),
|
|
99
100
|
secret: resolveApiSecret(config),
|
|
100
101
|
});
|
|
101
102
|
}
|
package/dist/global-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,16 @@ export interface TeardownOptions {
|
|
|
18
18
|
/** Injectable so tests need no site; see httpCleanup for the real one. */
|
|
19
19
|
cleanup: CleanupClient;
|
|
20
20
|
preserve: PreservePlan;
|
|
21
|
+
/** Signs the replay login link; resolved from the file when omitted. */
|
|
22
|
+
secret?: string;
|
|
21
23
|
}
|
|
22
24
|
export interface TeardownSummary {
|
|
23
25
|
dropped: number;
|
|
24
26
|
/** Test IDs whose database may still exist, so the caller can fail the run. */
|
|
25
27
|
leaked: string[];
|
|
26
28
|
preserved: string[];
|
|
29
|
+
/** Replay only: the backend login link for the replayed database. */
|
|
30
|
+
replayUrl?: string;
|
|
27
31
|
}
|
|
28
32
|
/** Only live runs go in `keepTestIds`; an abandoned run's databases are dropped. */
|
|
29
33
|
export declare function sweepOrphans(config: ToolkitConfig, cleanup: CleanupClient, now?: number): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-teardown.d.ts","sourceRoot":"","sources":["../src/global-teardown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"global-teardown.d.ts","sourceRoot":"","sources":["../src/global-teardown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAS1E,eAAO,MAAM,qBAAqB,WAAa,CAAA;AAO/C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAwBlE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAgBhE;AAED,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,GAAG,YAAY,CAoBpG;AAMD,MAAM,WAAW,eAAe;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,oFAAoF;AACpF,wBAAsB,YAAY,CAC9B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,GAAG,GAAE,MAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,CA2DjB;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,aAAa,EACrB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,MAAM,SAAK,EACX,GAAG,GAAE,MAAmB,GACzB,MAAM,CAwBR;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA8C3G;AA8FD,iBAAe,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C7C;AAgBD,eAAe,cAAc,CAAA"}
|
package/dist/global-teardown.js
CHANGED
|
@@ -6,6 +6,8 @@ import { readAttemptsFrom, readRegisteredTestIds } from './state/attempt-registr
|
|
|
6
6
|
import { listRunIds, runLastActiveMs, runPaths, runsRoot } from './state/run-namespace.js';
|
|
7
7
|
import { assertDeletableDirectory, safeJoin } from './state/safe-paths.js';
|
|
8
8
|
import { inspectUrl } from './inspect/token.js';
|
|
9
|
+
import { REPLAY_TEST_ID } from './contract.js';
|
|
10
|
+
import { recordReplayTarget } from './inspect/replay-target.js';
|
|
9
11
|
import { resolveApiSecret } from './http/api-secret.js';
|
|
10
12
|
export const DEFAULT_ORPHAN_AGE_MS = 86_400_000;
|
|
11
13
|
/** Age at which a TYPO3 session directory is no longer any run's. */
|
|
@@ -141,10 +143,23 @@ export function describePreservedRun(config, keptTestIds, secret = '', now = Dat
|
|
|
141
143
|
export async function runTeardown(config, options) {
|
|
142
144
|
const { stateDir, sessionDir } = config.paths;
|
|
143
145
|
const { cleanup, preserve } = options;
|
|
146
|
+
const secret = options.secret ?? inspectSecret(config);
|
|
144
147
|
// setToolkitConfig bypasses defineToolkitConfig, so re-check here: everything
|
|
145
148
|
// below this line deletes recursively.
|
|
146
149
|
assertDeletableDirectory('stateDir', stateDir, config.paths.consumerRoot);
|
|
147
150
|
assertDeletableDirectory('sessionDir', sessionDir, config.paths.consumerRoot);
|
|
151
|
+
// Nothing to drop, but the state has to go: a pinned run id would otherwise
|
|
152
|
+
// make the next replay skip every setup on this run's committed state.
|
|
153
|
+
if (config.replay) {
|
|
154
|
+
removeRunState(config, false);
|
|
155
|
+
recordReplayTarget(stateDir, config.testingURL);
|
|
156
|
+
return {
|
|
157
|
+
dropped: 0,
|
|
158
|
+
leaked: [],
|
|
159
|
+
preserved: [],
|
|
160
|
+
replayUrl: '' === secret ? undefined : inspectUrl(config.testingURL, secret, REPLAY_TEST_ID, Date.now()),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
148
163
|
const kept = 'all' === preserve.mode ? readRegisteredTestIds(config) : preserveList(preserve);
|
|
149
164
|
const drop = 'all' === preserve.mode
|
|
150
165
|
? { dropped: 0, leaked: [], incomplete: false }
|
|
@@ -233,7 +248,13 @@ async function globalTeardown() {
|
|
|
233
248
|
let summary;
|
|
234
249
|
try {
|
|
235
250
|
summary = await runTeardown(config, { cleanup: httpCleanup(config), preserve });
|
|
236
|
-
if (
|
|
251
|
+
if (undefined !== summary.replayUrl) {
|
|
252
|
+
console.log(`\n[replay] Everything was replayed into the testing site's own database.`);
|
|
253
|
+
console.log(`[replay] This link logs you into its backend for the next 15 minutes:\n`);
|
|
254
|
+
console.log(` ${summary.replayUrl}\n`);
|
|
255
|
+
}
|
|
256
|
+
// Replay keeps its one database regardless, so there is nothing to report.
|
|
257
|
+
if ('none' !== preserve.mode && !config.replay) {
|
|
237
258
|
console.log(`[teardown] Kept for debugging (${preserve.reason}).`);
|
|
238
259
|
console.log(describePreservedRun(config, 'some' === preserve.mode ? preserve.testIds : undefined, inspectSecret(config)));
|
|
239
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-teardown.js","sourceRoot":"","sources":["../src/global-teardown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-teardown.js","sourceRoot":"","sources":["../src/global-teardown.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,8 @@ export interface EditContext {
|
|
|
20
20
|
testId: string;
|
|
21
21
|
routeToken: string;
|
|
22
22
|
}
|
|
23
|
+
/** saveRecord with the poster and context already bound. */
|
|
24
|
+
export declare function recordSaver(poster: FormPoster, context: EditContext): (record: RecordToSave) => Promise<number>;
|
|
23
25
|
export interface RecordToSave {
|
|
24
26
|
table: string;
|
|
25
27
|
/** A `NEW` prefix creates; anything else is a uid the form opens for editing. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-edit.d.ts","sourceRoot":"","sources":["../../src/http/record-edit.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAE/C,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAEnF,MAAM,WAAW,YAAY;IACzB,MAAM,IAAI,MAAM,CAAA;IAChB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,CACA,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACtG,OAAO,CAAC,YAAY,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
|
|
1
|
+
{"version":3,"file":"record-edit.d.ts","sourceRoot":"","sources":["../../src/http/record-edit.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAE/C,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAEnF,MAAM,WAAW,YAAY;IACzB,MAAM,IAAI,MAAM,CAAA;IAChB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,CACA,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACtG,OAAO,CAAC,YAAY,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CACvB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,GACrB,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAE3C;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,CAwCjB"}
|
package/dist/http/record-edit.js
CHANGED
|
@@ -2,6 +2,10 @@ import { getToolkitConfig } from '../config.js';
|
|
|
2
2
|
import { toolkitHeaders } from '../contract.js';
|
|
3
3
|
/** Relative to the backend entry point, which a project may have moved. */
|
|
4
4
|
export const RECORD_EDIT_ROUTE = '/record/edit';
|
|
5
|
+
/** saveRecord with the poster and context already bound. */
|
|
6
|
+
export function recordSaver(poster, context) {
|
|
7
|
+
return (record) => saveRecord(poster, context, record);
|
|
8
|
+
}
|
|
5
9
|
/**
|
|
6
10
|
* The route the backend's own edit form posts to, so a TYPO3 release that changes
|
|
7
11
|
* it, its request-token rules or its field names fails the suite rather than
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-edit.js","sourceRoot":"","sources":["../../src/http/record-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"record-edit.js","sourceRoot":"","sources":["../../src/http/record-edit.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { defineBasePlaywrightConfig } from './playwright/base-config.js';
|
|
|
5
5
|
export { ContentBuilder } from './builders/content-builder.js';
|
|
6
6
|
export { PageBuilder } from './builders/page-builder.js';
|
|
7
7
|
export { CoreContent, HeaderContent, TextContent, TextmediaContent, TextpicContent, ImageContent, BulletsContent, TableContent, UploadsContent, HtmlContent, DividerContent, ShortcutContent, MenuContent, type ContentTypeMap, type CoreContentTypeMap, } from './builders/core-content.js';
|
|
8
|
-
export type { RecordDataMap } from './http/record-edit.js';
|
|
8
|
+
export type { RecordDataMap, RecordToSave } from './http/record-edit.js';
|
|
9
9
|
export { newRecordIdentifier } from './builders/identifier.js';
|
|
10
10
|
export { takeScreenshot, waitForAnimations } from './checks/screenshot.js';
|
|
11
11
|
export { runAccessibilityScan, scanAccessibility, DEFAULT_SCAN_TAGS, type AccessibilityScanOptions, } from './checks/accessibility.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,kBAAkB,GAC1B,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAClB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACH,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,EACd,eAAe,EACf,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,kBAAkB,GAC1B,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,wBAAwB,GAChC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC9D,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACxF,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA"}
|
package/dist/inspect/cli.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import { findStateDir, inspectLinks } from './links.js';
|
|
5
|
-
import { INSPECT_TOKEN_LIFETIME_MS } from './token.js';
|
|
5
|
+
import { INSPECT_TOKEN_LIFETIME_MS, inspectUrl } from './token.js';
|
|
6
|
+
import { replayTestingUrl } from './replay-target.js';
|
|
7
|
+
import { REPLAY_TEST_ID } from '../contract.js';
|
|
6
8
|
function readSecret(stateDir) {
|
|
7
9
|
const fromEnvironment = process.env.PLAYWRIGHT_TOOLKIT_SECRET?.trim();
|
|
8
10
|
if (fromEnvironment) {
|
|
@@ -22,6 +24,17 @@ if ('' === secret) {
|
|
|
22
24
|
console.error('No API secret found. Run "ddev playwright-prepare" first.');
|
|
23
25
|
process.exit(1);
|
|
24
26
|
}
|
|
27
|
+
// The link a replay run printed expires, and its run state is gone by then.
|
|
28
|
+
if (process.argv.includes('--replay')) {
|
|
29
|
+
const testingURL = replayTestingUrl(stateDir);
|
|
30
|
+
if (undefined === testingURL) {
|
|
31
|
+
console.error('No replay recorded. Run "ddev playwright-replay" first.');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
console.log(`Logs you into the replayed database, for ${INSPECT_TOKEN_LIFETIME_MS / 60_000} minutes.\n`);
|
|
35
|
+
console.log(` ${inspectUrl(testingURL, secret, REPLAY_TEST_ID, Date.now())}\n`);
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
25
38
|
const links = inspectLinks(stateDir, secret);
|
|
26
39
|
if (0 === links.length) {
|
|
27
40
|
console.error('No test databases recorded. They are removed when a run passes.');
|
package/dist/inspect/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/inspect/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/inspect/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-target.d.ts","sourceRoot":"","sources":["../../src/inspect/replay-target.ts"],"names":[],"mappings":"AAQA,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAG7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUrE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
// Outside runs/: replay teardown removes its run directory.
|
|
4
|
+
function targetFile(stateDir) {
|
|
5
|
+
return path.join(stateDir, 'replay.json');
|
|
6
|
+
}
|
|
7
|
+
export function recordReplayTarget(stateDir, testingURL) {
|
|
8
|
+
fs.mkdirSync(stateDir, { recursive: true });
|
|
9
|
+
fs.writeFileSync(targetFile(stateDir), JSON.stringify({ testingURL }));
|
|
10
|
+
}
|
|
11
|
+
export function replayTestingUrl(stateDir) {
|
|
12
|
+
let testingURL;
|
|
13
|
+
try {
|
|
14
|
+
testingURL = JSON.parse(fs.readFileSync(targetFile(stateDir), 'utf-8'))
|
|
15
|
+
.testingURL;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return 'string' === typeof testingURL ? testingURL : undefined;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=replay-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-target.js","sourceRoot":"","sources":["../../src/inspect/replay-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,4DAA4D;AAC5D,SAAS,UAAU,CAAC,QAAgB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,UAAkB;IACnE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC7C,IAAI,UAAmB,CAAA;IACvB,IAAI,CAAC;QACD,UAAU,GAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAA8B;aAChG,UAAU,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,OAAO,QAAQ,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;AAClE,CAAC"}
|
package/dist/scenario.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type APIRequestContext, type Browser, type Page } from '@playwright/test';
|
|
2
2
|
import { type ToolkitConfig } from './config.js';
|
|
3
|
+
import { type ReplayFolder, type RequestContext } from './builders/request-context.js';
|
|
4
|
+
import { type RecordToSave } from './http/record-edit.js';
|
|
3
5
|
import { ContentBuilder } from './builders/content-builder.js';
|
|
4
6
|
import { PageBuilder } from './builders/page-builder.js';
|
|
5
7
|
export interface ScenarioBuilders {
|
|
@@ -13,6 +15,8 @@ export interface SetupTools {
|
|
|
13
15
|
page: Page;
|
|
14
16
|
request: APIRequestContext;
|
|
15
17
|
builders: ScenarioBuilders;
|
|
18
|
+
/** For a table no builder covers; returns the uid TYPO3 assigned. */
|
|
19
|
+
saveRecord(record: RecordToSave): Promise<number>;
|
|
16
20
|
}
|
|
17
21
|
export interface ScenarioFixtures<S> {
|
|
18
22
|
state: S;
|
|
@@ -28,6 +32,12 @@ interface ResolvedScenario<S> {
|
|
|
28
32
|
* job: it is a sanitised path with a hash on the end.
|
|
29
33
|
*/
|
|
30
34
|
export declare function scenarioName(file: string): string;
|
|
35
|
+
/** One folder per scenario, so the shared database can be read by a person. */
|
|
36
|
+
export declare function createScenarioFolder(page: Page, builderContext: Partial<RequestContext>, name: string): Promise<ReplayFolder>;
|
|
37
|
+
export declare function buildScenarioContext(page: Page, config: ToolkitConfig, session: {
|
|
38
|
+
backendPath: string;
|
|
39
|
+
routeToken: string;
|
|
40
|
+
}, testId: string, name: string): Promise<Partial<RequestContext>>;
|
|
31
41
|
export declare function openAuthenticatedPage(browser: Browser, config: ToolkitConfig, testId: string, name?: string): Promise<{
|
|
32
42
|
page: Page;
|
|
33
43
|
routeToken: string;
|
package/dist/scenario.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAiB,MAAM,kBAAkB,CAAA;AAE/G,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAiB,MAAM,kBAAkB,CAAA;AAE/G,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAIlE,OAAO,EAGH,KAAK,YAAY,EACjB,KAAK,cAAc,EACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAOxD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,IAAI,WAAW,CAAA;IACnB,OAAO,IAAI,cAAc,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,iBAAiB,CAAA;IAC1B,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,qEAAqE;IACrE,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACpD;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,gBAAgB,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAKD,+EAA+E;AAC/E,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,EACvC,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAWvB;AAED,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAelC;AAED,wBAAsB,qBAAqB,CACvC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,SAAK,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAgD9F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC;sBAEjD,gBAAgB,CAAC,CAAC,CAAC;gCAA8B,IAAI;yGA4FtG"}
|
package/dist/scenario.js
CHANGED
|
@@ -4,7 +4,8 @@ import { getToolkitConfig } from './config.js';
|
|
|
4
4
|
import { ensureState } from './state/ensure-state.js';
|
|
5
5
|
import { applyScenarioOutcome, recordTestFailure } from './state/scenario-outcome.js';
|
|
6
6
|
import { sanitizeScenarioKey } from './state/run-namespace.js';
|
|
7
|
-
import { DEFAULT_BACKEND_PATH } from './builders/request-context.js';
|
|
7
|
+
import { DEFAULT_BACKEND_PATH, resolveRequestContext, } from './builders/request-context.js';
|
|
8
|
+
import { recordSaver } from './http/record-edit.js';
|
|
8
9
|
import { ContentBuilder } from './builders/content-builder.js';
|
|
9
10
|
import { PageBuilder } from './builders/page-builder.js';
|
|
10
11
|
import { applyToolkitHeaders } from './http/off-site-headers.js';
|
|
@@ -21,6 +22,34 @@ export function scenarioName(file) {
|
|
|
21
22
|
const stripped = fileName.replace(/\.(spec|test)\.[cm]?[jt]sx?$/i, '');
|
|
22
23
|
return '' === stripped ? fileName : stripped;
|
|
23
24
|
}
|
|
25
|
+
const SYSFOLDER_DOKTYPE = 254;
|
|
26
|
+
const FIXTURE_ROOT_ID = 1;
|
|
27
|
+
/** One folder per scenario, so the shared database can be read by a person. */
|
|
28
|
+
export async function createScenarioFolder(page, builderContext, name) {
|
|
29
|
+
const folder = await new PageBuilder(page, builderContext)
|
|
30
|
+
.withTitle(name)
|
|
31
|
+
.withField('doktype', SYSFOLDER_DOKTYPE)
|
|
32
|
+
// Or TYPO3 derives one from the title and the scenario's own page,
|
|
33
|
+
// wanting "/news" too, has to take "/news-1".
|
|
34
|
+
.withField('slug', `/replay-${name}`)
|
|
35
|
+
.atParentId(FIXTURE_ROOT_ID)
|
|
36
|
+
.create();
|
|
37
|
+
return { id: folder.id, ownPages: new Set() };
|
|
38
|
+
}
|
|
39
|
+
export async function buildScenarioContext(page, config, session, testId, name) {
|
|
40
|
+
const context = {
|
|
41
|
+
testId,
|
|
42
|
+
baseUrl: config.testingURL,
|
|
43
|
+
backendPath: session.backendPath,
|
|
44
|
+
routeToken: session.routeToken,
|
|
45
|
+
usedSlugs: new Set(),
|
|
46
|
+
};
|
|
47
|
+
if (!config.replay) {
|
|
48
|
+
return context;
|
|
49
|
+
}
|
|
50
|
+
// Built from a context with no folder, or it would land inside itself.
|
|
51
|
+
return { ...context, replayFolder: await createScenarioFolder(page, context, name) };
|
|
52
|
+
}
|
|
24
53
|
export async function openAuthenticatedPage(browser, config, testId, name = '') {
|
|
25
54
|
const headers = toolkitHeaders(config, testId);
|
|
26
55
|
const context = await browser.newContext({ ignoreHTTPSErrors: true });
|
|
@@ -80,13 +109,8 @@ export function defineScenario(setup) {
|
|
|
80
109
|
}
|
|
81
110
|
const label = attempt > 1 ? `${name} #${attempt}` : name;
|
|
82
111
|
const session = await openAuthenticatedPage(browser, config, testId, label);
|
|
83
|
-
const builderContext = {
|
|
84
|
-
testId,
|
|
85
|
-
baseUrl: config.testingURL,
|
|
86
|
-
backendPath: session.backendPath,
|
|
87
|
-
routeToken: session.routeToken,
|
|
88
|
-
};
|
|
89
112
|
try {
|
|
113
|
+
const builderContext = await buildScenarioContext(session.page, config, session, testId, name);
|
|
90
114
|
return await setup({
|
|
91
115
|
testId,
|
|
92
116
|
attempt,
|
|
@@ -97,6 +121,7 @@ export function defineScenario(setup) {
|
|
|
97
121
|
page: () => new PageBuilder(session.page, builderContext),
|
|
98
122
|
content: () => new ContentBuilder(session.page, builderContext),
|
|
99
123
|
},
|
|
124
|
+
saveRecord: recordSaver(session.page.request, resolveRequestContext(session.page, builderContext)),
|
|
100
125
|
});
|
|
101
126
|
}
|
|
102
127
|
finally {
|
|
@@ -104,7 +129,7 @@ export function defineScenario(setup) {
|
|
|
104
129
|
}
|
|
105
130
|
},
|
|
106
131
|
});
|
|
107
|
-
const data = applyScenarioOutcome(outcome, (reason) => testInfo.skip(true, reason));
|
|
132
|
+
const data = applyScenarioOutcome(outcome, (reason) => testInfo.skip(true, reason), config.replay);
|
|
108
133
|
await use({ data, testId: outcome.status === 'ready' ? outcome.testId : '' });
|
|
109
134
|
if (testInfo.status !== testInfo.expectedStatus) {
|
|
110
135
|
recordTestFailure(config, key, testInfo.error?.message ?? `test ${testInfo.status}`);
|
package/dist/scenario.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAkE,MAAM,kBAAkB,CAAA;AAC/G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-state.d.ts","sourceRoot":"","sources":["../../src/state/ensure-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"ensure-state.d.ts","sourceRoot":"","sources":["../../src/state/ensure-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAoBjD,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAA;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAC1B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAExC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/E;AAoGD,wBAAsB,WAAW,CAAC,CAAC,EAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA2FhC"}
|
|
@@ -4,6 +4,7 @@ import { commitScenarioState, readScenarioState, readScenarioFailure, recordScen
|
|
|
4
4
|
import { ensureRunNamespace, runSalt } from './run-namespace.js';
|
|
5
5
|
import { acquireSetupLock, heartbeatSetupLock, releaseSetupLock, stealSetupLock, stillOwns, } from './setup-lock.js';
|
|
6
6
|
import { claimNextAttempt, highestClaimedAttempt } from './attempt-claim.js';
|
|
7
|
+
import { REPLAY_TEST_ID } from '../contract.js';
|
|
7
8
|
export const SETUP_DEFAULTS = {
|
|
8
9
|
attemptTimeoutMs: 90_000,
|
|
9
10
|
waitTimeoutMs: 300_000,
|
|
@@ -96,7 +97,8 @@ export async function ensureState(config, options) {
|
|
|
96
97
|
const name = options.name ?? key;
|
|
97
98
|
const now = options.now ?? (() => Date.now());
|
|
98
99
|
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
99
|
-
|
|
100
|
+
// One attempt in replay: a retry would leave the failed folder beside a second one.
|
|
101
|
+
const tuning = { ...SETUP_DEFAULTS, ...config.setup, ...(config.replay ? { attempts: 1 } : {}) };
|
|
100
102
|
const paths = ensureRunNamespace(config);
|
|
101
103
|
const startedAt = now();
|
|
102
104
|
const failures = [];
|
|
@@ -126,7 +128,7 @@ export async function ensureState(config, options) {
|
|
|
126
128
|
`${failures.at(-1)?.error ?? 'another worker exhausted them'}`;
|
|
127
129
|
throw giveUp(config, key, triggerId, failures, reason, now() - startedAt);
|
|
128
130
|
}
|
|
129
|
-
const testId = deriveTestId(runSalt(config), key, attempt);
|
|
131
|
+
const testId = config.replay ? REPLAY_TEST_ID : deriveTestId(runSalt(config), key, attempt);
|
|
130
132
|
registerAttempt(config, { key, name, attempt, testId, nonce });
|
|
131
133
|
const heartbeat = setInterval(() => heartbeatSetupLock(paths.locksDir, key, nonce), 1_000);
|
|
132
134
|
const attemptStartedAt = now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-state.js","sourceRoot":"","sources":["../../src/state/ensure-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GAExB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,SAAS,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ensure-state.js","sourceRoot":"","sources":["../../src/state/ensure-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ToolkitConfig } from '../config.js';
|
|
2
2
|
import type { EnsureStateOutcome } from './ensure-state.js';
|
|
3
|
-
export declare function applyScenarioOutcome<S>(outcome: EnsureStateOutcome<S>, skip: (reason: string) => void): S;
|
|
3
|
+
export declare function applyScenarioOutcome<S>(outcome: EnsureStateOutcome<S>, skip: (reason: string) => void, replay?: boolean): S;
|
|
4
4
|
/**
|
|
5
5
|
* Recorded so teardown preserves the databases of a scenario whose tests
|
|
6
6
|
* failed, the way it does for a failed setup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-outcome.d.ts","sourceRoot":"","sources":["../../src/state/scenario-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"scenario-outcome.d.ts","sourceRoot":"","sources":["../../src/state/scenario-outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAK3D,wBAAgB,oBAAoB,CAAC,CAAC,EAClC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,UAAQ,GACf,CAAC,CAWH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOzF"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { recordScenarioFailure } from './scenario-state.js';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const REPLAY_REASON = 'replay: the setup ran, the tests belong to a per-test database';
|
|
3
|
+
export function applyScenarioOutcome(outcome, skip, replay = false) {
|
|
4
|
+
if (outcome.status === 'ready' && !replay) {
|
|
4
5
|
return outcome.data;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
const reason = 'ready' === outcome.status ? REPLAY_REASON : outcome.reason;
|
|
8
|
+
skip(reason);
|
|
7
9
|
// Playwright's skip throws; anything else must not fall through into a test
|
|
8
10
|
// that has no state to work with.
|
|
9
|
-
throw new Error(`[typo3-playwright-toolkit] ${
|
|
11
|
+
throw new Error(`[typo3-playwright-toolkit] ${reason}`);
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Recorded so teardown preserves the databases of a scenario whose tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-outcome.js","sourceRoot":"","sources":["../../src/state/scenario-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,UAAU,oBAAoB,CAChC,OAA8B,EAC9B,IAA8B;
|
|
1
|
+
{"version":3,"file":"scenario-outcome.js","sourceRoot":"","sources":["../../src/state/scenario-outcome.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,aAAa,GAAG,gEAAgE,CAAA;AAEtF,MAAM,UAAU,oBAAoB,CAChC,OAA8B,EAC9B,IAA8B,EAC9B,MAAM,GAAG,KAAK;IAEd,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAA;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAC1E,IAAI,CAAC,MAAM,CAAC,CAAA;IAEZ,4EAA4E;IAC5E,kCAAkC;IAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,GAAW,EAAE,KAAa;IAC/E,qBAAqB,CAAC,MAAM,EAAE;QAC1B,GAAG,EAAE,GAAG,GAAG,QAAQ;QACnB,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,EAAE;QACpB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;KAC/D,CAAC,CAAA;AACN,CAAC"}
|