@plan2net/typo3-playwright-toolkit 0.11.0 → 0.13.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 +47 -2
- package/dist/builders/content-builder.d.ts +26 -1
- package/dist/builders/content-builder.d.ts.map +1 -1
- package/dist/builders/content-builder.js +73 -14
- package/dist/builders/content-builder.js.map +1 -1
- package/dist/checks/screenshot.d.ts +25 -3
- package/dist/checks/screenshot.d.ts.map +1 -1
- package/dist/checks/screenshot.js.map +1 -1
- package/dist/global-setup.d.ts.map +1 -1
- package/dist/global-setup.js +40 -4
- package/dist/global-setup.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 +8 -10
- 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/index.js.map +1 -1
- package/dist/scenario.d.ts +9 -1
- package/dist/scenario.d.ts.map +1 -1
- package/dist/scenario.js +2 -1
- package/dist/scenario.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
[](https://www.npmjs.com/package/@plan2net/typo3-playwright-toolkit)
|
|
9
9
|
[](https://nodejs.org)
|
|
10
|
-
[](https://playwright.dev)
|
|
11
11
|
[](LICENSE)
|
|
12
12
|
|
|
13
13
|
An npm package. It provides the [Playwright](https://playwright.dev) fixtures, the
|
|
@@ -31,12 +31,15 @@ the database service and the commands.
|
|
|
31
31
|
## Requirements
|
|
32
32
|
|
|
33
33
|
- Node 22.12 or newer
|
|
34
|
-
- `@playwright/test` 1.
|
|
34
|
+
- `@playwright/test` 1.44 or newer, so a project that already runs Playwright keeps its
|
|
35
|
+
version and its screenshot baselines
|
|
35
36
|
- The Composer extension, installed in the same project
|
|
36
37
|
|
|
37
38
|
You do not need a database client. This package never talks to the database; it asks
|
|
38
39
|
the extension to create and delete them. That is why PHP and Node may run in
|
|
39
40
|
different containers.
|
|
41
|
+
[Where things run](https://github.com/plan2net/typo3-playwright-toolkit#where-things-run)
|
|
42
|
+
shows how.
|
|
40
43
|
|
|
41
44
|
## Install
|
|
42
45
|
|
|
@@ -289,6 +292,48 @@ override getRelations(owner: RelationOwner): RelationOutput {
|
|
|
289
292
|
}
|
|
290
293
|
```
|
|
291
294
|
|
|
295
|
+
### One request for several elements
|
|
296
|
+
|
|
297
|
+
Every `create()` is a POST, and every POST boots the backend, builds the form and runs
|
|
298
|
+
DataHandler. A page with six elements pays for that six times, which is most of what
|
|
299
|
+
its setup costs. `builders.batch()` puts them in one:
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
const [hero, intro, gallery] = await builders.batch(
|
|
303
|
+
builders.content().onPage(page.id).ofType('header')
|
|
304
|
+
.configure((element) => element.withHeader('Hero')),
|
|
305
|
+
builders.content().onPage(page.id).ofType('text')
|
|
306
|
+
.configure((element) => element.withBodytext('<p>Intro</p>')),
|
|
307
|
+
builders.content().onPage(page.id).ofType('textmedia')
|
|
308
|
+
.configure((element) => element.withHeader('Gallery'))
|
|
309
|
+
.withFileReferences('assets', [1, 2]),
|
|
310
|
+
)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
The queued builders get no `.create()` — `batch` saves them. They land on the page in
|
|
314
|
+
the order you list them, you get a uid for each, and their files and child records come
|
|
315
|
+
along in the same request.
|
|
316
|
+
|
|
317
|
+
All the elements have to belong to one page, because a request positions them after one
|
|
318
|
+
another and that means nothing across pages. They also cannot point at each other: a
|
|
319
|
+
relation needs a uid, and only a save hands one back. Create what is pointed at first,
|
|
320
|
+
then batch the rest:
|
|
321
|
+
|
|
322
|
+
```ts
|
|
323
|
+
const container = await builders.content().onPage(page.id).ofType('my_container').create()
|
|
324
|
+
|
|
325
|
+
await builders.batch(
|
|
326
|
+
builders.content().onPage(page.id).ofType('text')
|
|
327
|
+
.configure((element) => element.inContainer(Number(container.id))),
|
|
328
|
+
builders.content().onPage(page.id).ofType('header')
|
|
329
|
+
.configure((element) => element.inContainer(Number(container.id))),
|
|
330
|
+
)
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
A content type whose children hang off a column of its own needs none of this:
|
|
334
|
+
`withChildren` already writes them in the same request as their parent. Batching is for
|
|
335
|
+
elements that sit side by side on a page.
|
|
336
|
+
|
|
292
337
|
### Calling the site directly
|
|
293
338
|
|
|
294
339
|
The `request` client — the one `defineScenario` hands your setup, and the `request`
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Page } from '@playwright/test';
|
|
2
2
|
import { ContentBuilderInterface, type ContentFields } from '../types/content-builder.js';
|
|
3
3
|
import type { ContentTypeFor, ContentTypeKey } from './core-content.js';
|
|
4
|
+
import { type RecordDataMap } from '../http/record-edit.js';
|
|
4
5
|
import { type ChildRecord } from './relations.js';
|
|
5
6
|
import { type RequestContext } from './request-context.js';
|
|
6
7
|
export declare class ContentBuilder {
|
|
@@ -16,14 +17,25 @@ export declare class ContentBuilder {
|
|
|
16
17
|
ofType<K extends ContentTypeKey>(type: K): TypedContentBuilder<ContentTypeFor<K>>;
|
|
17
18
|
ofType(type: string): TypedContentBuilder<ContentBuilderInterface>;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
/** What `batch()` needs of a queued element, whatever CType it builds. */
|
|
21
|
+
export interface QueuedContent {
|
|
22
|
+
readonly identifier: string;
|
|
23
|
+
readonly targetPageId: string;
|
|
24
|
+
prepared(context: RequestContext, positionPid: string): {
|
|
25
|
+
row: Record<string, unknown>;
|
|
26
|
+
records: RecordDataMap;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
declare class TypedContentBuilder<B extends ContentBuilderInterface = ContentBuilderInterface> implements QueuedContent {
|
|
20
30
|
private page;
|
|
21
31
|
private pageId;
|
|
22
32
|
private requestContext?;
|
|
33
|
+
readonly identifier: string;
|
|
23
34
|
private builder;
|
|
24
35
|
private readonly fields;
|
|
25
36
|
private readonly relations;
|
|
26
37
|
constructor(page: Page, pageId: string, type: string, requestContext?: Partial<RequestContext> | undefined);
|
|
38
|
+
get targetPageId(): string;
|
|
27
39
|
configure(fn: (builder: B) => void): this;
|
|
28
40
|
withField(column: string, value: ContentFields[string]): this;
|
|
29
41
|
withFileReference(column: string, fileUid: number, fields?: ContentFields): this;
|
|
@@ -33,6 +45,19 @@ declare class TypedContentBuilder<B extends ContentBuilderInterface = ContentBui
|
|
|
33
45
|
create(): Promise<{
|
|
34
46
|
id: string;
|
|
35
47
|
}>;
|
|
48
|
+
prepared(context: RequestContext, positionPid: string): {
|
|
49
|
+
row: Record<string, unknown>;
|
|
50
|
+
records: RecordDataMap;
|
|
51
|
+
};
|
|
36
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* One request for many elements, which saves a backend bootstrap each. Their own
|
|
55
|
+
* rows go in first so the uids come back in the order they were queued, and each
|
|
56
|
+
* element is positioned after the one before it: a positive pid means "insert at
|
|
57
|
+
* the top", so an unchained batch lays the page out backwards.
|
|
58
|
+
*/
|
|
59
|
+
export declare function saveBatch(page: Page, requestContext: Partial<RequestContext> | undefined, queued: QueuedContent[]): Promise<Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
}>>;
|
|
37
62
|
export {};
|
|
38
63
|
//# sourceMappingURL=content-builder.d.ts.map
|
|
@@ -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,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"content-builder.d.ts","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ class TypedContentBuilder {
|
|
|
29
29
|
page;
|
|
30
30
|
pageId;
|
|
31
31
|
requestContext;
|
|
32
|
+
identifier = newRecordIdentifier();
|
|
32
33
|
builder;
|
|
33
34
|
fields = {};
|
|
34
35
|
relations = new RelationSet('tt_content', (column) => column in this.fields);
|
|
@@ -38,6 +39,9 @@ class TypedContentBuilder {
|
|
|
38
39
|
this.requestContext = requestContext;
|
|
39
40
|
this.builder = createContent(type);
|
|
40
41
|
}
|
|
42
|
+
get targetPageId() {
|
|
43
|
+
return this.pageId;
|
|
44
|
+
}
|
|
41
45
|
configure(fn) {
|
|
42
46
|
fn(this.builder);
|
|
43
47
|
return this;
|
|
@@ -64,7 +68,20 @@ class TypedContentBuilder {
|
|
|
64
68
|
}
|
|
65
69
|
async create() {
|
|
66
70
|
const context = resolveRequestContext(this.page, this.requestContext);
|
|
67
|
-
const
|
|
71
|
+
const pageId = replayParentId(context, this.pageId);
|
|
72
|
+
const { row, records } = this.prepared(context, insertPosition(this.page, pageId));
|
|
73
|
+
const data = { tt_content: { [this.identifier]: row } };
|
|
74
|
+
mergeRecords(data, records);
|
|
75
|
+
const saved = await saveRecord(this.page.request, context, {
|
|
76
|
+
table: 'tt_content',
|
|
77
|
+
identifier: this.identifier,
|
|
78
|
+
target: Number(pageId),
|
|
79
|
+
data,
|
|
80
|
+
});
|
|
81
|
+
lastElementOnPage.get(this.page)?.set(pageId, saved.uid);
|
|
82
|
+
return { id: String(saved.uid) };
|
|
83
|
+
}
|
|
84
|
+
prepared(context, positionPid) {
|
|
68
85
|
const pageId = replayParentId(context, this.pageId);
|
|
69
86
|
const fields = this.builder.getFields();
|
|
70
87
|
// Kept out so the explicit CType and colPos below survive the spread.
|
|
@@ -78,8 +95,8 @@ class TypedContentBuilder {
|
|
|
78
95
|
const inner = this.builder.getRelations?.(owner) ?? { columns: {}, records: {} };
|
|
79
96
|
const outer = this.relations.materialise(owner);
|
|
80
97
|
refuseSharedColumns(inner.columns, outer.columns);
|
|
81
|
-
const
|
|
82
|
-
pid:
|
|
98
|
+
const row = {
|
|
99
|
+
pid: positionPid,
|
|
83
100
|
sys_language_uid: 0,
|
|
84
101
|
CType: fields.CType || this.builder.type,
|
|
85
102
|
colPos: fields.colPos ?? 0,
|
|
@@ -88,17 +105,59 @@ class TypedContentBuilder {
|
|
|
88
105
|
...outer.columns,
|
|
89
106
|
};
|
|
90
107
|
// Merged per table, not spread: a child table may be tt_content itself.
|
|
91
|
-
const
|
|
92
|
-
mergeRecords(
|
|
93
|
-
mergeRecords(
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
108
|
+
const records = {};
|
|
109
|
+
mergeRecords(records, inner.records);
|
|
110
|
+
mergeRecords(records, outer.records);
|
|
111
|
+
return { row, records };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* One request for many elements, which saves a backend bootstrap each. Their own
|
|
116
|
+
* rows go in first so the uids come back in the order they were queued, and each
|
|
117
|
+
* element is positioned after the one before it: a positive pid means "insert at
|
|
118
|
+
* the top", so an unchained batch lays the page out backwards.
|
|
119
|
+
*/
|
|
120
|
+
export async function saveBatch(page, requestContext, queued) {
|
|
121
|
+
if (0 === queued.length) {
|
|
122
|
+
throw new Error('[typo3-playwright-toolkit] batch() was given nothing to build.');
|
|
123
|
+
}
|
|
124
|
+
const context = resolveRequestContext(page, requestContext);
|
|
125
|
+
refuseASecondPage(queued);
|
|
126
|
+
const pageId = replayParentId(context, queued[0].targetPageId);
|
|
127
|
+
const rows = {};
|
|
128
|
+
const children = {};
|
|
129
|
+
let position = insertPosition(page, pageId);
|
|
130
|
+
for (const element of queued) {
|
|
131
|
+
const prepared = element.prepared(context, position);
|
|
132
|
+
rows[element.identifier] = prepared.row;
|
|
133
|
+
mergeRecords(children, prepared.records);
|
|
134
|
+
// Backwards only: DataHandler drops a position it cannot resolve yet, silently.
|
|
135
|
+
position = `-${element.identifier}`;
|
|
136
|
+
}
|
|
137
|
+
const data = { tt_content: rows };
|
|
138
|
+
mergeRecords(data, children);
|
|
139
|
+
const saved = await saveRecord(page.request, context, {
|
|
140
|
+
table: 'tt_content',
|
|
141
|
+
identifier: queued[0].identifier,
|
|
142
|
+
target: Number(pageId),
|
|
143
|
+
data,
|
|
144
|
+
});
|
|
145
|
+
const uids = saved.uids.slice(0, queued.length);
|
|
146
|
+
if (uids.length < queued.length) {
|
|
147
|
+
throw new Error(`[typo3-playwright-toolkit] The batch posted ${queued.length} elements and the ` +
|
|
148
|
+
`redirect named ${uids.length} uids, so which element got which is unknown. ` +
|
|
149
|
+
'Build them with create() instead.');
|
|
150
|
+
}
|
|
151
|
+
lastElementOnPage.get(page)?.set(pageId, uids[uids.length - 1]);
|
|
152
|
+
return uids.map((uid) => ({ id: String(uid) }));
|
|
153
|
+
}
|
|
154
|
+
function refuseASecondPage(queued) {
|
|
155
|
+
const first = queued[0].targetPageId;
|
|
156
|
+
const other = queued.find((element) => element.targetPageId !== first);
|
|
157
|
+
if (undefined !== other) {
|
|
158
|
+
throw new Error(`[typo3-playwright-toolkit] A batch builds on one and the same page, and this one ` +
|
|
159
|
+
`mixes ${first} with ${other.targetPageId}. Elements are positioned after one ` +
|
|
160
|
+
'another, which means nothing across pages. Use one batch per page.');
|
|
102
161
|
}
|
|
103
162
|
}
|
|
104
163
|
function refuseSharedColumns(inner, outer) {
|
|
@@ -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,EAAsB,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAuB,MAAM,sBAAsB,CAAA;AACjG,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA6B,CAAA;AAElE,MAAM,OAAO,cAAc;IACf,IAAI,CAAM;IACV,MAAM,GAAG,EAAE,CAAA;IACF,cAAc,CAA0B;IAEzD,YAAY,IAAU,EAAE,cAAwC;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,OAAO,IAAI,CAAA;IACf,CAAC;IAQD,MAAM,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACX,mEAAmE,IAAI,OAAO;gBAC1E,yDAAyD,CAChE,CAAA;QACL,CAAC;QAED,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACrF,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"content-builder.js","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
import { Locator, Page
|
|
1
|
+
import { Locator, Page } from '@playwright/test';
|
|
2
|
+
/** Playwright only named this type in 1.56. */
|
|
3
|
+
export interface ScreenshotComparisonOptions {
|
|
4
|
+
animations?: 'disabled' | 'allow';
|
|
5
|
+
caret?: 'hide' | 'initial';
|
|
6
|
+
clip?: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
fullPage?: boolean;
|
|
13
|
+
mask?: Locator[];
|
|
14
|
+
maskColor?: string;
|
|
15
|
+
maxDiffPixelRatio?: number;
|
|
16
|
+
maxDiffPixels?: number;
|
|
17
|
+
omitBackground?: boolean;
|
|
18
|
+
scale?: 'css' | 'device';
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
stylePath?: string | string[];
|
|
21
|
+
threshold?: number;
|
|
22
|
+
timeout?: number;
|
|
23
|
+
}
|
|
2
24
|
export declare function buildHideStyles(selectors: string[]): string;
|
|
3
25
|
/**
|
|
4
26
|
* expectScreenshot already waits; call this when you interact and then assert
|
|
@@ -10,7 +32,7 @@ export declare function resolveScreenshotTarget(target: Page | Locator, include?
|
|
|
10
32
|
shot: Page | Locator;
|
|
11
33
|
wholePage: boolean;
|
|
12
34
|
};
|
|
13
|
-
export interface ScreenshotOptions extends
|
|
35
|
+
export interface ScreenshotOptions extends ScreenshotComparisonOptions {
|
|
14
36
|
/** Shoot only this element. */
|
|
15
37
|
include?: string;
|
|
16
38
|
/** Replaces `hideBeforeScreenshot` for this shot; `[]` hides nothing. */
|
|
@@ -18,5 +40,5 @@ export interface ScreenshotOptions extends PageAssertionsToHaveScreenshotOptions
|
|
|
18
40
|
}
|
|
19
41
|
export declare function hiddenSelectors(configured: string[] | undefined, perCall: string[] | undefined): string[];
|
|
20
42
|
export declare function expectScreenshot(target: Page | Locator, name: string, options?: ScreenshotOptions): Promise<void>;
|
|
21
|
-
export declare function comparisonOptions(wholePage: boolean, perCall:
|
|
43
|
+
export declare function comparisonOptions(wholePage: boolean, perCall: ScreenshotComparisonOptions): ScreenshotComparisonOptions;
|
|
22
44
|
//# 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,
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGxD,+CAA+C;AAC/C,MAAM,WAAW,2BAA2B;IACxC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAUD,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,2BAA2B;IAClE,+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,gBAAgB,CAClC,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,2BAA2B,GACrC,2BAA2B,CAO7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/checks/screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AA4DpC;;;;GAIG;AACH,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC3C,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAiBD,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,CAsCf;AAED,iBAAe,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1C;AAED,eAAe,WAAW,CAAA"}
|
package/dist/global-setup.js
CHANGED
|
@@ -31,11 +31,23 @@ async function readHealth(healthUrl, headers, doFetch, unreachable) {
|
|
|
31
31
|
return { status: response.status, ok: response.ok, body: JSON.parse(text) };
|
|
32
32
|
}
|
|
33
33
|
catch {
|
|
34
|
-
throw new Error(
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
throw new Error([
|
|
35
|
+
`Preflight failed: ${healthUrl} returned non-JSON (status ${response.status}).`,
|
|
36
|
+
'Either the Playwright test API extension is not loaded in the Testing context,',
|
|
37
|
+
`or the site failed before it answered:`,
|
|
38
|
+
excerpt(text),
|
|
39
|
+
'',
|
|
40
|
+
...(404 === response.status ? notInTestingContext(healthUrl) : []),
|
|
41
|
+
].join('\n'));
|
|
37
42
|
}
|
|
38
43
|
}
|
|
44
|
+
function notInTestingContext(healthUrl) {
|
|
45
|
+
return [
|
|
46
|
+
`The endpoint only exists in the Testing context. Check that ${new URL(healthUrl).origin}`,
|
|
47
|
+
'is the hostname your web server maps to TYPO3_CONTEXT=Testing, and that testingURL',
|
|
48
|
+
'in playwright.config.ts names that same hostname.',
|
|
49
|
+
];
|
|
50
|
+
}
|
|
39
51
|
function excerpt(body) {
|
|
40
52
|
const collapsed = body.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
41
53
|
return collapsed.length > 500 ? `${collapsed.slice(0, 500)}…` : collapsed || '(empty body)';
|
|
@@ -47,7 +59,19 @@ function excerpt(body) {
|
|
|
47
59
|
*/
|
|
48
60
|
export async function verifyApiVersion(config, options = {}) {
|
|
49
61
|
const healthUrl = `${config.testingURL}/typo3/test-api/health`;
|
|
50
|
-
const { body } = await readHealth(healthUrl, { [SECRET_HEADER]: resolveApiSecret(config) }, options.fetchImpl ?? fetch, (reason) => `Preflight failed: could not read the API version from ${healthUrl} (${reason}).`);
|
|
62
|
+
const { status, body } = await readHealth(healthUrl, { [SECRET_HEADER]: resolveApiSecret(config) }, options.fetchImpl ?? fetch, (reason) => `Preflight failed: could not read the API version from ${healthUrl} (${reason}).`);
|
|
63
|
+
// Before the version check: a 401 body parses and carries no version, which the
|
|
64
|
+
// check below would report as an extension too old.
|
|
65
|
+
if (401 === status) {
|
|
66
|
+
throw new Error([
|
|
67
|
+
`Preflight failed: ${healthUrl} refused the request.`,
|
|
68
|
+
'The toolkit secret does not match the one the extension expects.',
|
|
69
|
+
'',
|
|
70
|
+
'Under DDEV both sides read var/playwright/api-secret, which',
|
|
71
|
+
'`ddev playwright-prepare` writes. Run it, or set PLAYWRIGHT_TOOLKIT_SECRET',
|
|
72
|
+
'to the same value on both sides when PHP and Node run in separate containers.',
|
|
73
|
+
].join('\n'));
|
|
74
|
+
}
|
|
51
75
|
const reported = body.api;
|
|
52
76
|
if (typeof reported !== 'number' || reported < MINIMUM_API_VERSION) {
|
|
53
77
|
throw new Error([
|
|
@@ -62,6 +86,17 @@ export async function verifyApiVersion(config, options = {}) {
|
|
|
62
86
|
}
|
|
63
87
|
return reported;
|
|
64
88
|
}
|
|
89
|
+
/** Cannot fail while the endpoint itself is gated: here so a moved gate stops the run. */
|
|
90
|
+
function assertTestingContext(healthUrl, reported) {
|
|
91
|
+
if (undefined === reported || /^Testing(\/|$)/.test(reported)) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
throw new Error([
|
|
95
|
+
`Preflight failed: ${healthUrl} answered in the ${reported} context, not Testing.`,
|
|
96
|
+
'',
|
|
97
|
+
...notInTestingContext(healthUrl),
|
|
98
|
+
].join('\n'));
|
|
99
|
+
}
|
|
65
100
|
export async function runHealthCheck(testingURL, options = {}) {
|
|
66
101
|
const healthUrl = `${testingURL}/typo3/test-api/health`;
|
|
67
102
|
const headers = {};
|
|
@@ -78,6 +113,7 @@ export async function runHealthCheck(testingURL, options = {}) {
|
|
|
78
113
|
' - The testing site configuration is missing',
|
|
79
114
|
].join('\n'));
|
|
80
115
|
if (ok && body.ok) {
|
|
116
|
+
assertTestingContext(healthUrl, body.checks?.context?.detail);
|
|
81
117
|
return;
|
|
82
118
|
}
|
|
83
119
|
const failed = Object.entries(body.checks ?? {})
|
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,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,UAAU,eAAe,CAAC,MAAqB;IACjD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;IAC/B,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAEjD,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAQpC;;;GAGG;AACH,KAAK,UAAU,UAAU,CACrB,SAAiB,EACjB,OAA+B,EAC/B,OAAqB,EACrB,WAAuC;IAEvC,IAAI,QAAkB,CAAA;IACtB,IAAI,CAAC;QACD,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;YAC7E,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,EAAE,CAAA;IACzG,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CACX,qBAAqB,SAAS,8BAA8B,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ export interface EditContext {
|
|
|
22
22
|
}
|
|
23
23
|
export interface SavedRecord {
|
|
24
24
|
uid: number;
|
|
25
|
+
/** Every uid the redirect named, in datamap order: one POST may carry a batch. */
|
|
26
|
+
uids: number[];
|
|
25
27
|
/** Absent where the table has no slug column. */
|
|
26
28
|
slug?: string;
|
|
27
29
|
}
|
|
@@ -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,WAAW;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CACvB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,GACrB,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAEhD;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,WAAW,CAAC,CA2CtB"}
|
|
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,WAAW;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,kFAAkF;IAClF,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CACvB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,GACrB,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAEhD;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,WAAW,CAAC,CA2CtB"}
|
package/dist/http/record-edit.js
CHANGED
|
@@ -35,12 +35,12 @@ export async function saveRecord(poster, context, record) {
|
|
|
35
35
|
`${(await response.text()).slice(0, 300)}`);
|
|
36
36
|
}
|
|
37
37
|
refuseWhatTypo3Rejected(headers, record.table);
|
|
38
|
-
const
|
|
39
|
-
if (
|
|
38
|
+
const uids = uidsFrom(location, record.table);
|
|
39
|
+
if (0 === uids.length) {
|
|
40
40
|
throw new Error(`[typo3-playwright-toolkit] The save of ${record.table} redirected to no uid — ` +
|
|
41
41
|
`a rejected request-token or session redirects to the login form. Location: ${location}`);
|
|
42
42
|
}
|
|
43
|
-
return { uid, ...savedRecord(headers) };
|
|
43
|
+
return { uid: uids[0], uids, ...savedRecord(headers) };
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* A refused child leaves the parent saved, so the request looks like a success
|
|
@@ -122,12 +122,10 @@ function savedRecord(headers) {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
/** `edit[tt_content][42]=edit`, in whatever encoding the header carries. */
|
|
125
|
-
function
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const uid = Number(match[1]);
|
|
131
|
-
return Number.isInteger(uid) && uid > 0 ? uid : undefined;
|
|
125
|
+
function uidsFrom(location, table) {
|
|
126
|
+
const matches = decodeURIComponent(location).matchAll(new RegExp(`edit\\[${table}\\]\\[(\\d+)\\]`, 'g'));
|
|
127
|
+
return [...matches]
|
|
128
|
+
.map((match) => Number(match[1]))
|
|
129
|
+
.filter((uid) => Number.isInteger(uid) && uid > 0);
|
|
132
130
|
}
|
|
133
131
|
//# sourceMappingURL=record-edit.js.map
|
|
@@ -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,yBAAyB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/F,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
|
@@ -2,7 +2,7 @@ export { defineScenario, type ScenarioBuilders, type ScenarioFixtures, type Setu
|
|
|
2
2
|
export { expect } from '@playwright/test';
|
|
3
3
|
export { defineToolkitConfig, getToolkitConfig, type ToolkitConfig, type ToolkitConfigInput, type ToolkitPaths, type ToolkitScreenshotConfig, type ContentTypeConstructor, } from './config.js';
|
|
4
4
|
export { defineBasePlaywrightConfig, type BasePlaywrightOverrides } from './playwright/base-config.js';
|
|
5
|
-
export { ContentBuilder } from './builders/content-builder.js';
|
|
5
|
+
export { ContentBuilder, type QueuedContent } from './builders/content-builder.js';
|
|
6
6
|
export { PageBuilder } from './builders/page-builder.js';
|
|
7
7
|
export type { ChildRecord, RelationOwner, RelationOutput } from './builders/relations.js';
|
|
8
8
|
export { CoreContent, HeaderContent, TextContent, TextmediaContent, TextpicContent, ImageContent, BulletsContent, TableContent, UploadsContent, HtmlContent, DividerContent, ShortcutContent, MenuContent, type ContentTypeMap, type CoreContentTypeMap, } from './builders/core-content.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,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAEtG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,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,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAEtG,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAGxD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACzF,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;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,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,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACxF,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,GAIjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACH,mBAAmB,EACnB,gBAAgB,GAMnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAgC,MAAM,6BAA6B,CAAA;AAEtG,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,GAIjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACH,mBAAmB,EACnB,gBAAgB,GAMnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAgC,MAAM,6BAA6B,CAAA;AAEtG,OAAO,EAAE,cAAc,EAAsB,MAAM,+BAA+B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAIxD,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,GAGd,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAEpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,WAAW,EAAmC,MAAM,iBAAiB,CAAA;AAE9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/scenario.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type APIRequestContext, type Browser, type Page, type TestInfo } from '
|
|
|
2
2
|
import { type ToolkitConfig } from './config.js';
|
|
3
3
|
import { type ReplayFolder, type RequestContext } from './builders/request-context.js';
|
|
4
4
|
import { type RecordToSave, type SavedRecord } from './http/record-edit.js';
|
|
5
|
-
import { ContentBuilder } from './builders/content-builder.js';
|
|
5
|
+
import { ContentBuilder, type QueuedContent } from './builders/content-builder.js';
|
|
6
6
|
import { PageBuilder } from './builders/page-builder.js';
|
|
7
7
|
type SetupFailureReporter = (config: ToolkitConfig, scenarioKey: string, testInfo: TestInfo, error: unknown) => Promise<never>;
|
|
8
8
|
/** A failed setup throws out of ensureState, so it never reaches the fixture's end. */
|
|
@@ -10,6 +10,14 @@ export declare function resolveSetupOutcome<T>(config: ToolkitConfig, scenarioKe
|
|
|
10
10
|
export interface ScenarioBuilders {
|
|
11
11
|
page(): PageBuilder;
|
|
12
12
|
content(): ContentBuilder;
|
|
13
|
+
/**
|
|
14
|
+
* Builds several elements of one page in a single request, in the order given.
|
|
15
|
+
* They may not reference one another — that needs a uid, which only a save
|
|
16
|
+
* hands back, so anything referenced has to be created before the batch.
|
|
17
|
+
*/
|
|
18
|
+
batch(...queued: QueuedContent[]): Promise<Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
}>>;
|
|
13
21
|
}
|
|
14
22
|
export interface SetupTools {
|
|
15
23
|
testId: 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,EAAE,KAAK,QAAQ,EAAE,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,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
|
package/dist/scenario.js
CHANGED
|
@@ -6,7 +6,7 @@ import { applyScenarioOutcome, recordTestFailure } from './state/scenario-outcom
|
|
|
6
6
|
import { sanitizeScenarioKey } from './state/run-namespace.js';
|
|
7
7
|
import { DEFAULT_BACKEND_PATH, resolveRequestContext, } from './builders/request-context.js';
|
|
8
8
|
import { recordSaver } from './http/record-edit.js';
|
|
9
|
-
import { ContentBuilder } from './builders/content-builder.js';
|
|
9
|
+
import { ContentBuilder, saveBatch } from './builders/content-builder.js';
|
|
10
10
|
import { PageBuilder } from './builders/page-builder.js';
|
|
11
11
|
import { applyToolkitHeaders } from './http/off-site-headers.js';
|
|
12
12
|
import { prepareScenarioContext } from './http/prepare-context.js';
|
|
@@ -146,6 +146,7 @@ export function defineScenario(setup) {
|
|
|
146
146
|
builders: {
|
|
147
147
|
page: () => new PageBuilder(session.page, builderContext),
|
|
148
148
|
content: () => new ContentBuilder(session.page, builderContext),
|
|
149
|
+
batch: (...queued) => saveBatch(session.page, builderContext, queued),
|
|
149
150
|
},
|
|
150
151
|
saveRecord: recordSaver(session.page.request, resolveRequestContext(session.page, builderContext)),
|
|
151
152
|
});
|
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,EACH,oBAAoB,EACpB,qBAAqB,GAGxB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAuC,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plan2net/typo3-playwright-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Playwright toolkit for TYPO3 end-to-end tests: fixtures, content builders, per-test databases.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typo3",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"prepack": "npm run build"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
|
-
"@playwright/test": "^1.
|
|
75
|
+
"@playwright/test": "^1.44.0"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@playwright/test": "^1.62.1",
|