@plan2net/typo3-playwright-toolkit 0.12.0 → 0.14.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 CHANGED
@@ -38,6 +38,8 @@ the database service and the commands.
38
38
  You do not need a database client. This package never talks to the database; it asks
39
39
  the extension to create and delete them. That is why PHP and Node may run in
40
40
  different containers.
41
+ [Where things run](https://github.com/plan2net/typo3-playwright-toolkit#where-things-run)
42
+ shows how.
41
43
 
42
44
  ## Install
43
45
 
@@ -147,9 +149,33 @@ The `slug` you get back is the one the site stored, which is not always the one
147
149
  asked for — a translation and a name already in use are two cases, and an extension
148
150
  can add more. Navigate with the returned value, never with the string you passed in.
149
151
 
152
+ A save also reports how many records TYPO3 actually wrote, and warns when that is more
153
+ than you asked for:
154
+
155
+ ```
156
+ [typo3-playwright-toolkit] Saving pages wrote 27 records for 1 requested.
157
+ pages 17 (16 not requested), sys_redirect 10 (10 not requested)
158
+ A slug change cascades to every descendant page and writes a redirect for each.
159
+ ```
160
+
161
+ Nothing is wrong — the save succeeded. It is where a slow setup spends its time, and
162
+ changing the slug of a page with descendants is the usual cause. The counts are on the
163
+ result as `written`. It never fails a test.
164
+
150
165
  The setup runs once per file, even when the file runs in several browser projects.
151
166
  The other projects use the state and the test database that the first one created.
152
167
 
168
+ The setup has its own time budget, so a test keeps the full timeout for its own work.
169
+ Setup time is not part of a test's duration; the report carries it as an annotation:
170
+
171
+ ```
172
+ setup: built in 12.9s
173
+ ```
174
+
175
+ The tests that reuse the setup say `reused, built in 12.9s`. How long a stuck setup
176
+ runs is `setup.attemptTimeoutMs` and `setup.waitTimeoutMs`, 90s per attempt and two
177
+ attempts by default. Lower them to hear about a broken setup sooner.
178
+
153
179
  ### When something fails, TYPO3 says why
154
180
 
155
181
  A failing test now prints what TYPO3 wrote to its log while that test ran, under the
@@ -290,6 +316,48 @@ override getRelations(owner: RelationOwner): RelationOutput {
290
316
  }
291
317
  ```
292
318
 
319
+ ### One request for several elements
320
+
321
+ Every `create()` is a POST, and every POST boots the backend, builds the form and runs
322
+ DataHandler. A page with six elements pays for that six times, which is most of what
323
+ its setup costs. `builders.batch()` puts them in one:
324
+
325
+ ```ts
326
+ const [hero, intro, gallery] = await builders.batch(
327
+ builders.content().onPage(page.id).ofType('header')
328
+ .configure((element) => element.withHeader('Hero')),
329
+ builders.content().onPage(page.id).ofType('text')
330
+ .configure((element) => element.withBodytext('<p>Intro</p>')),
331
+ builders.content().onPage(page.id).ofType('textmedia')
332
+ .configure((element) => element.withHeader('Gallery'))
333
+ .withFileReferences('assets', [1, 2]),
334
+ )
335
+ ```
336
+
337
+ The queued builders get no `.create()` — `batch` saves them. They land on the page in
338
+ the order you list them, you get a uid for each, and their files and child records come
339
+ along in the same request.
340
+
341
+ All the elements have to belong to one page, because a request positions them after one
342
+ another and that means nothing across pages. They also cannot point at each other: a
343
+ relation needs a uid, and only a save hands one back. Create what is pointed at first,
344
+ then batch the rest:
345
+
346
+ ```ts
347
+ const container = await builders.content().onPage(page.id).ofType('my_container').create()
348
+
349
+ await builders.batch(
350
+ builders.content().onPage(page.id).ofType('text')
351
+ .configure((element) => element.inContainer(Number(container.id))),
352
+ builders.content().onPage(page.id).ofType('header')
353
+ .configure((element) => element.inContainer(Number(container.id))),
354
+ )
355
+ ```
356
+
357
+ A content type whose children hang off a column of its own needs none of this:
358
+ `withChildren` already writes them in the same request as their parent. Batching is for
359
+ elements that sit side by side on a page.
360
+
293
361
  ### Calling the site directly
294
362
 
295
363
  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
- declare class TypedContentBuilder<B extends ContentBuilderInterface = ContentBuilderInterface> {
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;AAEvE,OAAO,EAA6B,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAKjG,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;IAM7E,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,cAAc,CAAC;IAR3B,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmE;gBAGjF,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;IAKzC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI;IAM7D,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,IAAI;IAMpF,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,GAAE,aAAkB,GAAG,IAAI;IAMxF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAMvF,YAAY,CAAC,CAAC,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,GACjD,IAAI;IAMD,MAAM,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CA+C1C"}
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 identifier = newRecordIdentifier();
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 record = {
82
- pid: insertPosition(this.page, pageId),
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 data = { tt_content: { [identifier]: record } };
92
- mergeRecords(data, inner.records);
93
- mergeRecords(data, outer.records);
94
- const saved = await saveRecord(this.page.request, context, {
95
- table: 'tt_content',
96
- identifier: identifier,
97
- target: Number(pageId),
98
- data,
99
- });
100
- lastElementOnPage.get(this.page)?.set(pageId, saved.uid);
101
- return { id: String(saved.uid) };
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":"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"}
1
+ {"version":3,"file":"content-builder.js","sourceRoot":"","sources":["../../src/builders/content-builder.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,12 @@ 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;
29
+ /** Per table, and not only the records that were asked for. */
30
+ written?: Record<string, number>;
27
31
  }
28
32
  /** saveRecord with the poster and context already bound. */
29
33
  export declare function recordSaver(poster: FormPoster, context: EditContext): (record: RecordToSave) => Promise<SavedRecord>;
@@ -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;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;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,CA8CtB"}
@@ -35,12 +35,40 @@ 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 uid = uidFrom(location, record.table);
39
- if (undefined === uid) {
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
+ const saved = { uid: uids[0], uids, ...savedRecord(headers) };
44
+ warnAboutUnrequestedWrites(record, saved.written);
45
+ return saved;
46
+ }
47
+ /**
48
+ * A slug change re-slugs every descendant page and writes a redirect for each, and
49
+ * the save still answers like an ordinary success.
50
+ */
51
+ function warnAboutUnrequestedWrites(record, written) {
52
+ if (undefined === written) {
53
+ return;
54
+ }
55
+ const requested = Object.fromEntries(Object.entries(record.data).map(([table, rows]) => [table, Object.keys(rows).length]));
56
+ const unrequested = Object.entries(written)
57
+ .map(([table, count]) => ({ table, count, extra: count - (requested[table] ?? 0) }))
58
+ .filter(({ extra }) => extra > 0);
59
+ if (0 === unrequested.length) {
60
+ return;
61
+ }
62
+ const wrote = Object.values(written).reduce((sum, count) => sum + count, 0);
63
+ const asked = Object.values(requested).reduce((sum, count) => sum + count, 0);
64
+ const tables = unrequested
65
+ .map(({ table, count, extra }) => `${table} ${count} (${extra} not requested)`)
66
+ .join(', ');
67
+ const hint = unrequested.some(({ table }) => 'sys_redirect' === table)
68
+ ? '\n A slug change cascades to every descendant page and writes a redirect for each.'
69
+ : '';
70
+ console.warn(`[typo3-playwright-toolkit] Saving ${record.table} wrote ${wrote} records for ${asked} requested.\n` +
71
+ ` ${tables}${hint}`);
44
72
  }
45
73
  /**
46
74
  * A refused child leaves the parent saved, so the request looks like a success
@@ -115,19 +143,26 @@ function savedRecord(headers) {
115
143
  }
116
144
  try {
117
145
  const parsed = JSON.parse(value);
118
- return 'string' === typeof parsed.slug ? { slug: parsed.slug } : {};
146
+ return {
147
+ ...('string' === typeof parsed.slug ? { slug: parsed.slug } : {}),
148
+ ...(isCountMap(parsed.written) ? { written: parsed.written } : {}),
149
+ };
119
150
  }
120
151
  catch {
121
152
  return {};
122
153
  }
123
154
  }
155
+ function isCountMap(value) {
156
+ return (null !== value &&
157
+ 'object' === typeof value &&
158
+ !Array.isArray(value) &&
159
+ Object.values(value).every((count) => 'number' === typeof count));
160
+ }
124
161
  /** `edit[tt_content][42]=edit`, in whatever encoding the header carries. */
125
- function uidFrom(location, table) {
126
- const match = decodeURIComponent(location).match(new RegExp(`edit\\[${table}\\]\\[(\\d+)\\]`));
127
- if (null === match) {
128
- return undefined;
129
- }
130
- const uid = Number(match[1]);
131
- return Number.isInteger(uid) && uid > 0 ? uid : undefined;
162
+ function uidsFrom(location, table) {
163
+ const matches = decodeURIComponent(location).matchAll(new RegExp(`edit\\[${table}\\]\\[(\\d+)\\]`, 'g'));
164
+ return [...matches]
165
+ .map((match) => Number(match[1]))
166
+ .filter((uid) => Number.isInteger(uid) && uid > 0);
132
167
  }
133
168
  //# sourceMappingURL=record-edit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-edit.js","sourceRoot":"","sources":["../../src/http/record-edit.ts"],"names":[],"mappings":"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"}
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';
@@ -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;AAC9D,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"}
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,EAAE,MAAM,+BAA+B,CAAA;AAC9D,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"}
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"}
@@ -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;
@@ -47,6 +55,7 @@ export declare function openAuthenticatedPage(browser: Browser, config: ToolkitC
47
55
  backendPath: string;
48
56
  close: () => Promise<void>;
49
57
  }>;
58
+ export declare function setupAnnotation(setupMs: number, setupRan: boolean): string;
50
59
  /** Only a worker that runs tests from both scenarios can see the clash. */
51
60
  export declare function claimScenarioFile(file: string, owner: symbol): void;
52
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
package/dist/scenario.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { test as base } from '@playwright/test';
2
2
  import { toolkitHeaders } from './contract.js';
3
3
  import { getToolkitConfig } from './config.js';
4
- import { ensureState } from './state/ensure-state.js';
4
+ import { ensureState, setupFixtureTimeout } 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
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';
@@ -99,6 +99,10 @@ export async function openAuthenticatedPage(browser, config, testId, name = '')
99
99
  throw error;
100
100
  }
101
101
  }
102
+ export function setupAnnotation(setupMs, setupRan) {
103
+ const seconds = (setupMs / 1000).toFixed(1);
104
+ return setupRan ? `built in ${seconds}s` : `reused, built in ${seconds}s`;
105
+ }
102
106
  const scenarioOwners = new Map();
103
107
  /** Only a worker that runs tests from both scenarios can see the clash. */
104
108
  export function claimScenarioFile(file, owner) {
@@ -120,48 +124,57 @@ export function claimScenarioFile(file, owner) {
120
124
  export function defineScenario(setup) {
121
125
  const owner = Symbol('scenario');
122
126
  return base.extend({
123
- resolvedScenario: async ({ browser }, use, testInfo) => {
124
- claimScenarioFile(testInfo.file, owner);
125
- const config = getToolkitConfig();
126
- const key = sanitizeScenarioKey(testInfo.file);
127
- const name = scenarioName(testInfo.file);
128
- const outcome = await resolveSetupOutcome(config, key, testInfo, () => ensureState(config, {
129
- key,
130
- name,
131
- triggerId: testInfo.testId,
132
- setup: async ({ testId, attempt, signal }) => {
133
- if (!setup) {
134
- return {};
135
- }
136
- const label = attempt > 1 ? `${name} #${attempt}` : name;
137
- const session = await openAuthenticatedPage(browser, config, testId, label);
138
- try {
139
- const builderContext = await buildScenarioContext(session.page, config, session, testId, name);
140
- return await setup({
141
- testId,
142
- attempt,
143
- signal,
144
- page: session.page,
145
- request: toolkitRequest(session.page.request, config, testId),
146
- builders: {
147
- page: () => new PageBuilder(session.page, builderContext),
148
- content: () => new ContentBuilder(session.page, builderContext),
149
- },
150
- saveRecord: recordSaver(session.page.request, resolveRequestContext(session.page, builderContext)),
151
- });
152
- }
153
- finally {
154
- await session.close();
155
- }
156
- },
157
- }));
158
- const data = applyScenarioOutcome(outcome, (reason) => testInfo.skip(true, reason), config.replay);
159
- await use({ data, testId: outcome.status === 'ready' ? outcome.testId : '' });
160
- if (testInfo.status !== testInfo.expectedStatus) {
161
- recordTestFailure(config, key, testInfo.error?.message ?? `test ${testInfo.status}`);
162
- await reportRecordedErrors(config, key, outcome.status === 'ready' ? outcome.testId : '', testInfo);
163
- }
164
- },
127
+ resolvedScenario: [async ({ browser }, use, testInfo) => {
128
+ claimScenarioFile(testInfo.file, owner);
129
+ const config = getToolkitConfig();
130
+ const key = sanitizeScenarioKey(testInfo.file);
131
+ const name = scenarioName(testInfo.file);
132
+ const outcome = await resolveSetupOutcome(config, key, testInfo, () => ensureState(config, {
133
+ key,
134
+ name,
135
+ triggerId: testInfo.testId,
136
+ setup: async ({ testId, attempt, signal }) => {
137
+ if (!setup) {
138
+ return {};
139
+ }
140
+ const label = attempt > 1 ? `${name} #${attempt}` : name;
141
+ const session = await openAuthenticatedPage(browser, config, testId, label);
142
+ try {
143
+ const builderContext = await buildScenarioContext(session.page, config, session, testId, name);
144
+ return await setup({
145
+ testId,
146
+ attempt,
147
+ signal,
148
+ page: session.page,
149
+ request: toolkitRequest(session.page.request, config, testId),
150
+ builders: {
151
+ page: () => new PageBuilder(session.page, builderContext),
152
+ content: () => new ContentBuilder(session.page, builderContext),
153
+ batch: (...queued) => saveBatch(session.page, builderContext, queued),
154
+ },
155
+ saveRecord: recordSaver(session.page.request, resolveRequestContext(session.page, builderContext)),
156
+ });
157
+ }
158
+ finally {
159
+ await session.close();
160
+ }
161
+ },
162
+ }));
163
+ const data = applyScenarioOutcome(outcome, (reason) => testInfo.skip(true, reason), config.replay);
164
+ if (outcome.status === 'ready') {
165
+ // The fixture's own timeout keeps this out of the test's duration,
166
+ // so the report shows it nowhere else.
167
+ testInfo.annotations.push({
168
+ type: 'setup',
169
+ description: setupAnnotation(outcome.setupMs, outcome.setupRan),
170
+ });
171
+ }
172
+ await use({ data, testId: outcome.status === 'ready' ? outcome.testId : '' });
173
+ if (testInfo.status !== testInfo.expectedStatus) {
174
+ recordTestFailure(config, key, testInfo.error?.message ?? `test ${testInfo.status}`);
175
+ await reportRecordedErrors(config, key, outcome.status === 'ready' ? outcome.testId : '', testInfo);
176
+ }
177
+ }, { timeout: setupFixtureTimeout(getToolkitConfig()) }],
165
178
  state: async ({ resolvedScenario }, use) => {
166
179
  await use(resolvedScenario.data);
167
180
  },
@@ -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;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAS5F,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,MAAqB,EACrB,WAAmB,EACnB,QAAkB,EAClB,GAAqB,EACrB,SAA+B,kBAAkB;IAEjD,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,EAAE,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,MAAM,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC7D,CAAC;AACL,CAAC;AA4BD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAA;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAA;IAEtE,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;AAChD,CAAC;AAED,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAAU,EACV,cAAuC,EACvC,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC;SACrD,SAAS,CAAC,IAAI,CAAC;SACf,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACxC,mEAAmE;QACnE,8CAA8C;SAC7C,SAAS,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;SACpC,UAAU,CAAC,eAAe,CAAC;SAC3B,MAAM,EAAE,CAAA;IAEb,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAAU,EACV,MAAqB,EACrB,OAAoD,EACpD,MAAc,EACd,IAAY;IAEZ,MAAM,OAAO,GAA4B;QACrC,MAAM;QACN,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,IAAI,GAAG,EAAE;KACvB,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,uEAAuE;IACvE,OAAO,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAA;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,OAAgB,EAChB,MAAqB,EACrB,MAAc,EACd,IAAI,GAAG,EAAE;IAET,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAA;IAErE,qFAAqF;IACrF,IAAI,CAAC;QACD,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CACjD;QAAC,OAA6B,CAAC,MAAM,GAAG,MAAM,CAAA;QAE/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CACnC;QAAC,IAAuB,CAAC,MAAM,GAAG,MAAM,CAAA;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,yBAAyB,EAAE;YACpF,OAAO;YACP,IAAI,EAAE,EAAE,IAAI,EAAE;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACvG,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKrC,CAAA;QACD,MAAM,OAAO,CAAC,UAAU,CAAC;YACrB;gBACI,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,KAAK,EAAE,OAAO,CAAC,WAAW;gBAC1B,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ;gBAC3C,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,QAAQ;aACrB;SACJ,CAAC,CAAA;QAEF,OAAO;YACH,IAAI;YACJ,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE;YAC7C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,oBAAoB;YACxD,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;SAC/B,CAAA;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QAErB,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;AAEhD,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACzD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE/B,OAAM;IACV,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACX,8BAA8B,IAAI,wCAAwC;YACtE,4EAA4E;YAC5E,4EAA4E,CACnF,CAAA;IACL,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAA4B,KAAyC;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAEhC,OAAO,IAAI,CAAC,MAAM,CAEhB;QACE,gBAAgB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,QAAkB,EAAE,EAAE;YAC7D,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAEvC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;YACjC,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAExC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAClE,WAAW,CAAI,MAAM,EAAE;gBACvB,GAAG;gBACH,IAAI;gBACJ,SAAS,EAAE,QAAQ,CAAC,MAAM;gBAC1B,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;oBACzC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,OAAO,EAAO,CAAA;oBAClB,CAAC;oBAED,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;oBACxD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;oBAC3E,IAAI,CAAC;wBACD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC7C,OAAO,CAAC,IAAI,EACZ,MAAM,EACN,OAAO,EACP,MAAM,EACN,IAAI,CACP,CAAA;wBAED,OAAO,MAAM,KAAK,CAAC;4BACf,MAAM;4BACN,OAAO;4BACP,MAAM;4BACN,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;4BAC7D,QAAQ,EAAE;gCACN,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;gCACzD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;6BAClE;4BACD,UAAU,EAAE,WAAW,CACnB,OAAO,CAAC,IAAI,CAAC,OAAO,EACpB,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CACtD;yBACJ,CAAC,CAAA;oBACN,CAAC;4BAAS,CAAC;wBACP,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;oBACzB,CAAC;gBACL,CAAC;aACA,CAAC,CACL,CAAA;YAED,MAAM,IAAI,GAAG,oBAAoB,CAC7B,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EACvC,MAAM,CAAC,MAAM,CAChB,CAAA;YAED,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAE7E,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC9C,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBACpF,MAAM,oBAAoB,CACtB,MAAM,EACN,GAAG,EACH,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAChD,QAAQ,CACX,CAAA;YACL,CAAC;QACL,CAAC;QAED,KAAK,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE;YACvC,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAA;YACjE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,0BAA0B,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAkB,EAAE,EAAE;gBACxC,MAAM,GAAG,EAAE,CAAA;gBAEX,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAE/C,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC9F,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAA;gBACpC,CAAC;YACL,CAAC;YACD,EAAE,IAAI,EAAE,IAAI,EAAE;SACjB;KACJ,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@ export declare const SETUP_DEFAULTS: {
6
6
  lockStaleMs: number;
7
7
  pollMs: number;
8
8
  };
9
+ /**
10
+ * Playwright kills the fixture at this value, so it has to sit above the worst case
11
+ * ensureState allows itself, or a generic message replaces the one naming the lock.
12
+ */
13
+ export declare function setupFixtureTimeout(config: ToolkitConfig): number;
9
14
  export interface SetupContext {
10
15
  testId: string;
11
16
  attempt: number;
@@ -28,6 +33,8 @@ export type EnsureStateOutcome<S> = {
28
33
  data: S;
29
34
  setupRan: boolean;
30
35
  waitedMs: number;
36
+ /** What the setup cost, even when this call only found it committed. */
37
+ setupMs: number;
31
38
  } | {
32
39
  status: 'skip';
33
40
  reason: string;
@@ -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;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"}
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;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAIjE;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;IACI,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;CAClB,GACD;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;AAqGD,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,CA4FhC"}
@@ -12,6 +12,14 @@ export const SETUP_DEFAULTS = {
12
12
  lockStaleMs: 15_000,
13
13
  pollMs: 100,
14
14
  };
15
+ /**
16
+ * Playwright kills the fixture at this value, so it has to sit above the worst case
17
+ * ensureState allows itself, or a generic message replaces the one naming the lock.
18
+ */
19
+ export function setupFixtureTimeout(config) {
20
+ const tuning = { ...SETUP_DEFAULTS, ...config.setup };
21
+ return tuning.waitTimeoutMs + tuning.attemptTimeoutMs;
22
+ }
15
23
  /**
16
24
  * Same salt, scenario and attempt always give the same ID, so a claimed attempt gets
17
25
  * its own database without anyone coordinating; a retry gets a different one.
@@ -80,6 +88,7 @@ function settledOutcome(config, key, triggerId, waitedMs) {
80
88
  data: committed.data,
81
89
  setupRan: false,
82
90
  waitedMs,
91
+ setupMs: committed.setupMs,
83
92
  };
84
93
  }
85
94
  const failure = readScenarioFailure(config, key);
@@ -157,6 +166,7 @@ export async function ensureState(config, options) {
157
166
  data: result.data,
158
167
  setupRan: true,
159
168
  waitedMs: 0,
169
+ setupMs: durationMs,
160
170
  };
161
171
  }
162
172
  failures.push({ attempt, testId, error: result.error, durationMs });
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-state.js","sourceRoot":"","sources":["../../src/state/ensure-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-state.js","sourceRoot":"","sources":["../../src/state/ensure-state.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.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "Playwright toolkit for TYPO3 end-to-end tests: fixtures, content builders, per-test databases.",
5
5
  "keywords": [
6
6
  "typo3",