@plan2net/typo3-playwright-toolkit 0.14.0 → 0.15.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
@@ -5,18 +5,22 @@
5
5
  <p align="center"><em>Playwright fixtures and content builders for TYPO3, one test database per test file.</em></p>
6
6
  <br>
7
7
 
8
- [![npm](https://img.shields.io/npm/v/@plan2net/typo3-playwright-toolkit)](https://www.npmjs.com/package/@plan2net/typo3-playwright-toolkit)
9
- [![Node](https://img.shields.io/badge/Node-22.12%2B-5fa04e)](https://nodejs.org)
10
- [![Playwright](https://img.shields.io/badge/Playwright-1.44%2B-2ead33)](https://playwright.dev)
11
- [![licence](https://img.shields.io/badge/licence-GPL--2.0--or--later-blue)](LICENSE)
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/@plan2net/typo3-playwright-toolkit"><img src="https://img.shields.io/npm/v/@plan2net/typo3-playwright-toolkit?style=for-the-badge&logo=npm&logoColor=white&labelColor=24273a&color=fff3b0" alt="npm version"></a>
10
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-22.12%2B-a0c4ff?style=for-the-badge&logo=nodedotjs&logoColor=white&labelColor=24273a" alt="Node 22.12 or newer"></a>
11
+ <a href="https://playwright.dev"><img src="https://img.shields.io/badge/Playwright-1.44%2B-b5ead7?style=for-the-badge&labelColor=24273a&logo=data:image/svg%2Bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI%2BPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgNHYxNmwxMy04eiIvPjwvc3ZnPg%3D%3D" alt="Playwright 1.44 or newer"></a>
12
+ <a href="LICENSE"><img src="https://img.shields.io/badge/licence-GPL--2.0--or--later-ffc6d9?style=for-the-badge&logo=gnu&logoColor=white&labelColor=24273a" alt="GPL-2.0-or-later licence"></a>
13
+ </p>
12
14
 
13
15
  An npm package. It provides the [Playwright](https://playwright.dev) fixtures, the
14
16
  content builders that create [TYPO3](https://typo3.org) records, and the
15
17
  accessibility ([axe](https://github.com/dequelabs/axe-core)) and CSP checks.
16
18
 
17
- It needs the [Composer extension](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/playwright-toolkit), which creates the test
18
- databases, and the [DDEV add-on](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/ddev-typo3-playwright-toolkit), which provides
19
- the database service and the commands.
19
+ It needs the
20
+ [Composer extension](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/playwright-toolkit),
21
+ which creates the test databases, and the
22
+ [DDEV add-on](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/ddev-typo3-playwright-toolkit),
23
+ which provides the database service and the commands.
20
24
 
21
25
  > [!IMPORTANT]
22
26
  > Setting this up for the first time? Follow
@@ -38,7 +42,7 @@ the database service and the commands.
38
42
  You do not need a database client. This package never talks to the database; it asks
39
43
  the extension to create and delete them. That is why PHP and Node may run in
40
44
  different containers.
41
- [Where things run](https://github.com/plan2net/typo3-playwright-toolkit#where-things-run)
45
+ [Where things run](https://github.com/plan2net/typo3-playwright-toolkit/blob/main/SETUP.md#where-things-run)
42
46
  shows how.
43
47
 
44
48
  ## Install
@@ -86,9 +90,9 @@ this package uses, because the test database exists nowhere else.
86
90
 
87
91
  `consumerRoot` is the root of your TYPO3 project. The package derives the state and
88
92
  session folders from it, so it works from `node_modules` without knowing its own
89
- location. Count the `..` from where your config actually sits the example assumes
93
+ location. Count the `..` from where your config sits: the example assumes
90
94
  `<project>/tests/playwright/`, so it climbs two levels. Pointing it at the wrong
91
- directory is not an error: the run works and writes its state somewhere you did not
95
+ directory is not an error; the run works and writes its state somewhere you did not
92
96
  expect. Use `fileURLToPath` rather than `new URL(...).pathname`, which
93
97
  percent-encodes a project path containing spaces or non-ASCII characters.
94
98
 
@@ -146,11 +150,11 @@ setup, and the other tests wait. If the setup fails, the tests are skipped with
146
150
  reason instead of failing because content is missing.
147
151
 
148
152
  The `slug` you get back is the one the site stored, which is not always the one you
149
- asked for a translation and a name already in use are two cases, and an extension
153
+ asked for. A translation and a name already in use are two cases, and an extension
150
154
  can add more. Navigate with the returned value, never with the string you passed in.
151
155
 
152
- A save also reports how many records TYPO3 actually wrote, and warns when that is more
153
- than you asked for:
156
+ A save also reports how many records TYPO3 wrote, and warns when that is more than
157
+ you asked for:
154
158
 
155
159
  ```
156
160
  [typo3-playwright-toolkit] Saving pages wrote 27 records for 1 requested.
@@ -158,7 +162,7 @@ than you asked for:
158
162
  A slug change cascades to every descendant page and writes a redirect for each.
159
163
  ```
160
164
 
161
- Nothing is wrong the save succeeded. It is where a slow setup spends its time, and
165
+ Nothing is wrong; the save succeeded. It is where a slow setup spends its time, and
162
166
  changing the slug of a page with descendants is the usual cause. The counts are on the
163
167
  result as `written`. It never fails a test.
164
168
 
@@ -178,7 +182,7 @@ attempts by default. Lower them to hear about a broken setup sooner.
178
182
 
179
183
  ### When something fails, TYPO3 says why
180
184
 
181
- A failing test now prints what TYPO3 wrote to its log while that test ran, under the
185
+ A failing test prints what TYPO3 wrote to its log while that test ran, under the
182
186
  failure itself:
183
187
 
184
188
  ```
@@ -199,8 +203,8 @@ The same list is attached to the test as `typo3-errors.json`. A message that rep
199
203
  is counted, not printed again. A failing setup shows the same list next to its own
200
204
  error.
201
205
 
202
- If TYPO3 refuses a record while a builder saves it, the builder stops at that line.
203
- Before, the save looked fine and the test failed later, somewhere unrelated.
206
+ If TYPO3 refuses a record while a builder saves it, the builder stops at that line,
207
+ so the failure points at the save and not at a later assertion.
204
208
 
205
209
  <picture>
206
210
  <source media="(max-width: 700px)" srcset="https://raw.githubusercontent.com/plan2net/typo3-playwright-toolkit/main/diagrams/scenario-fan-out-narrow.svg">
@@ -211,9 +215,9 @@ Before, the save looked fine and the test failed later, somewhere unrelated.
211
215
  Besides `builders`, the setup receives `testId` (the database this attempt runs
212
216
  against), `attempt` (`1` on the first try), `signal` (aborted when the attempt times
213
217
  out, so pass it to your own long requests), and a `page` and `request` that already
214
- carry the toolkit headers. Your tests get `testId` beside `state`, which is the
215
- database name without its `db` prefix and what the backend shows in brackets behind
216
- the site name:
218
+ carry the toolkit headers. Your tests get `testId` beside `state`. It is the database
219
+ name without its `db` prefix, and what the backend shows in brackets behind the site
220
+ name:
217
221
 
218
222
  ```ts
219
223
  test('reports which database it used', async ({ page, state, testId }) => {
@@ -334,14 +338,14 @@ const [hero, intro, gallery] = await builders.batch(
334
338
  )
335
339
  ```
336
340
 
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.
341
+ The queued builders get no `.create()`; `batch` saves them. They land on the page in
342
+ the order you list them, you get a uid for each, and their files and child records
343
+ come along in the same request.
340
344
 
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
+ All the elements have to belong to one page, because a request positions them after
346
+ one another and that means nothing across pages. They also cannot point at each
347
+ other: a relation needs a uid, and only a save hands one back. Create what is pointed
348
+ at first, then batch the rest:
345
349
 
346
350
  ```ts
347
351
  const container = await builders.content().onPage(page.id).ofType('my_container').create()
@@ -355,21 +359,21 @@ await builders.batch(
355
359
  ```
356
360
 
357
361
  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.
362
+ `withChildren` already writes them in the same request as their parent. Batching is
363
+ for elements that sit side by side on a page.
360
364
 
361
365
  ### Calling the site directly
362
366
 
363
- The `request` client the one `defineScenario` hands your setup, and the `request`
364
- fixture in your tests carries the test ID for `testingURL`, so it reads and
365
- writes the same throwaway database the browser does. Requests to any other host
366
- get neither toolkit header.
367
+ The `request` client, the one `defineScenario` hands your setup and the `request`
368
+ fixture in your tests, carries the test ID for `testingURL`, so it reads and writes
369
+ the same throwaway database the browser does. Requests to any other host get neither
370
+ toolkit header.
367
371
 
368
372
  ### Stubbing a third-party script
369
373
 
370
374
  A cookie banner or a tracking script can swallow the clicks your test makes.
371
- `prepareContext` runs on every context a test uses, after the toolkit's own
372
- routes are in place:
375
+ `prepareContext` runs on every context a test uses, after the toolkit's own routes
376
+ are in place:
373
377
 
374
378
  ```ts
375
379
  // playwright.config.ts
@@ -378,6 +382,35 @@ prepareContext: async (context) => {
378
382
  },
379
383
  ```
380
384
 
385
+ ### Building your assets
386
+
387
+ Every run builds your frontend assets before the first test. Tests against a stale
388
+ bundle still pass, and the screenshots they write become the baseline for the next
389
+ run, so no later run reports the problem either.
390
+
391
+ If you set no `build`, the package runs the `build` script from your project's
392
+ `package.json`, through the package manager your lockfile names: pnpm for
393
+ `pnpm-lock.yaml`, yarn for `yarn.lock`, bun for a bun lockfile, npm otherwise. A
394
+ project without that script builds nothing and starts right away, so a site with
395
+ committed assets needs no setting at all.
396
+
397
+ Name your own command when the default is wrong:
398
+
399
+ ```ts
400
+ // playwright.config.ts
401
+ build: 'pnpm build:test', // one command
402
+ build: 'npm run css && npm run js', // several, because it runs through a shell
403
+ build: false, // this project never builds
404
+ ```
405
+
406
+ The command runs in `consumerRoot` and writes its output to your terminal. A failing
407
+ build stops the run before the first test, so it costs you no per-test database and
408
+ no state to clean up. Under DDEV the template database is rebuilt earlier, by the
409
+ `ddev playwright` command itself, so that step runs either way.
410
+
411
+ To skip the build once, set `PW_SKIP_BUILD=1`, which is what
412
+ `ddev playwright test --skip-build` does.
413
+
381
414
  ### Screenshots
382
415
 
383
416
  `expectScreenshot` waits for fonts, images and animations, hides the selectors from
@@ -410,7 +443,7 @@ Every other option is passed on to `toHaveScreenshot`, and the tolerances come f
410
443
  > ```
411
444
 
412
445
  `expectScreenshot` waits for animations itself. When you interact and then assert
413
- without a screenshot an accessibility scan after opening an accordion, say — wait
446
+ without a screenshot, say an accessibility scan after opening an accordion, wait
414
447
  first:
415
448
 
416
449
  ```ts
@@ -499,6 +532,7 @@ Everything else:
499
532
  | `accessibility.disabledRules` | `[]` | axe rules turned off for the whole project |
500
533
  | `accessibility.projects` | all projects | Projects that run axe checks |
501
534
  | `accessibility.tags` | `DEFAULT_SCAN_TAGS` | Which axe rule sets to run |
535
+ | `build` | your `build` script | Command that builds your assets before the run, or `false` for none |
502
536
  | `cleanup.failOnLeak` | true in CI | Fail the run if a test database could not be deleted |
503
537
  | `cleanup.orphanAgeMs` | 24 hours | How old a leftover database must be before cleanup deletes it |
504
538
  | `cleanup.preserveOnFailure` | `failed` | Which test databases to keep after a failure: `failed`, `all` or `none` |
@@ -534,7 +568,7 @@ Every CType of a normal TYPO3 installation has a builder, and you register nothi
534
568
 
535
569
  All builders share `withHeader`, `withSubheader`, `withHeaderLayout`,
536
570
  `withHeaderLink`, `withColPos`, `setHidden`, and `withField(column, value)` for any
537
- other TCA column. They also share the four relation setters above
571
+ other TCA column. They also share the four relation setters above:
538
572
  `withFileReference`, `withFileReferences`, `withChild` and `withChildren`. Types with
539
573
  images add `withFile` and `withFiles` for their own media column, plus `withColumns`,
540
574
  `withOrientation` and `withImageSize`.
@@ -588,7 +622,7 @@ export class EventListContent extends CoreContent {
588
622
  ```
589
623
 
590
624
  For a structure with named sheets, or a key outside `settings.`, write the column
591
- yourself with `flexForm()` the form posts one field per value, not one for the
625
+ yourself with `flexForm()`. The form posts one field per value, not one for the
592
626
  column:
593
627
 
594
628
  ```ts
@@ -611,7 +645,7 @@ It reads the API secret from `var/playwright/api-secret` or from
611
645
  log in as the pre-seeded backend user and live 15 minutes.
612
646
 
613
647
  `--replay` prints a link into the database a replay run built, instead of the kept
614
- test databases. Use it when the link that run printed has expired it mints a new
648
+ test databases. Use it when the link that run printed has expired; it mints a new
615
649
  one rather than rebuilding anything.
616
650
 
617
651
  ### Replay mode
@@ -622,9 +656,10 @@ browse and export. `ddev playwright-replay` sets it, rebuilds that database from
622
656
  template first, and prints a backend link when the run ends.
623
657
 
624
658
  What changes while it is set: every scenario uses the one fixed test ID
625
- `REPLAY0000000000`, its content goes into a sysfolder named after it under the
626
- fixture root, slugs keep no test-ID suffix, setups run once with no retry, the tests
627
- themselves are skipped, and teardown drops nothing.
659
+ `REPLAY0000000000`, its content, images included, goes into a sysfolder named after
660
+ it under the fixture root, slugs keep no test-ID suffix, setups run once with no
661
+ retry, and teardown drops nothing. The tests themselves are skipped, because their
662
+ assertions and screenshot baselines belong to a per-test database.
628
663
 
629
664
  ## Troubleshooting
630
665
 
@@ -637,11 +672,15 @@ first thing in `playwright.config.ts`.
637
672
  **Cleanup refuses a path.** `stateDir` and `sessionDir` must be absolute and inside
638
673
  `consumerRoot`, because cleanup deletes files in both.
639
674
 
675
+ **The run builds nothing, or builds the wrong thing.** The default reads
676
+ `consumerRoot/package.json`, not the `package.json` next to your Playwright config.
677
+ Point `build` at your real command if the two differ.
678
+
640
679
  **"Timed out after 300000ms waiting for the setup".** A setup that builds a lot of
641
680
  content can outgrow the defaults on a slow machine. Raise `setup.attemptTimeoutMs`
642
- for the setup itself and `setup.waitTimeoutMs` for the tests waiting on it — the
643
- second has to stay comfortably above the first, since it covers every attempt plus
644
- the time spent waiting for the lock.
681
+ for the setup itself and `setup.waitTimeoutMs` for the tests waiting on it. The
682
+ second has to stay well above the first, since it covers every attempt plus the time
683
+ spent waiting for the lock.
645
684
 
646
685
  **Test databases stay after a failed run.** That is intended: the databases of the
647
686
  failed test files are kept for debugging, and the run prints a link for each one
@@ -655,5 +694,5 @@ minutes.
655
694
 
656
695
  ## Related packages
657
696
 
658
- - [`plan2net/playwright-toolkit`](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/playwright-toolkit) Composer extension
659
- - [DDEV add-on](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/ddev-typo3-playwright-toolkit) database service and commands
697
+ - [`plan2net/playwright-toolkit`](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/playwright-toolkit), the Composer extension
698
+ - [DDEV add-on](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/ddev-typo3-playwright-toolkit), the database service and commands
@@ -0,0 +1,8 @@
1
+ import type { ToolkitConfig } from './config.js';
2
+ export declare function resolveBuildCommand(config: ToolkitConfig): string | undefined;
3
+ /**
4
+ * `shell: true` is safe here: the command comes from the consumer's own config, never
5
+ * from a request, and `npm run css && npm run js` has to work.
6
+ */
7
+ export declare function runBuild(config: ToolkitConfig): void;
8
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAUhD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAqC7E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAgCpD"}
package/dist/build.js ADDED
@@ -0,0 +1,73 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ /** First match wins, so npm is the fallback rather than an entry. */
5
+ const LOCKFILES = [
6
+ { lockfile: 'pnpm-lock.yaml', packageManager: 'pnpm' },
7
+ { lockfile: 'yarn.lock', packageManager: 'yarn' },
8
+ { lockfile: 'bun.lockb', packageManager: 'bun' },
9
+ { lockfile: 'bun.lock', packageManager: 'bun' },
10
+ ];
11
+ export function resolveBuildCommand(config) {
12
+ if (false === config.build) {
13
+ return undefined;
14
+ }
15
+ if (config.build) {
16
+ return config.build;
17
+ }
18
+ const root = config.paths.consumerRoot;
19
+ const manifestPath = path.join(root, 'package.json');
20
+ if (!fs.existsSync(manifestPath)) {
21
+ return undefined;
22
+ }
23
+ let manifest;
24
+ try {
25
+ manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
26
+ }
27
+ catch (error) {
28
+ throw new Error([
29
+ `[typo3-playwright-toolkit] Could not read ${manifestPath}, so there is no way`,
30
+ `to tell whether this project builds: ${error instanceof Error ? error.message : String(error)}`,
31
+ '',
32
+ 'Fix the file, or say what to do in defineToolkitConfig: build: <your command>,',
33
+ 'or build: false for a project that never builds.',
34
+ ].join('\n'));
35
+ }
36
+ if (!manifest?.scripts?.build) {
37
+ return undefined;
38
+ }
39
+ const found = LOCKFILES.find((entry) => fs.existsSync(path.join(root, entry.lockfile)));
40
+ return `${found?.packageManager ?? 'npm'} run build`;
41
+ }
42
+ /**
43
+ * `shell: true` is safe here: the command comes from the consumer's own config, never
44
+ * from a request, and `npm run css && npm run js` has to work.
45
+ */
46
+ export function runBuild(config) {
47
+ if ('1' === process.env.PW_SKIP_BUILD) {
48
+ return;
49
+ }
50
+ const command = resolveBuildCommand(config);
51
+ if (!command) {
52
+ return;
53
+ }
54
+ process.stdout.write(`[toolkit] Building assets: ${command}\n`);
55
+ const { status, error } = spawnSync(command, {
56
+ cwd: config.paths.consumerRoot,
57
+ shell: true,
58
+ stdio: 'inherit',
59
+ });
60
+ if (error) {
61
+ throw new Error(`[typo3-playwright-toolkit] The asset build could not start: ${error.message}`);
62
+ }
63
+ if (0 !== status) {
64
+ throw new Error([
65
+ `[typo3-playwright-toolkit] The asset build failed (exit ${String(status)}): ${command}`,
66
+ '',
67
+ 'Fix the build, or run without it: PW_SKIP_BUILD=1, which is what',
68
+ '`ddev playwright test --skip-build` sets. A project that should never',
69
+ 'build wants build: false in defineToolkitConfig instead.',
70
+ ].join('\n'));
71
+ }
72
+ }
73
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -76,6 +76,12 @@ export interface ToolkitConfig {
76
76
  contentTypes?: Record<string, ContentTypeConstructor>;
77
77
  /** Selectors hidden before each screenshot. Defaults to []. */
78
78
  hideBeforeScreenshot?: string[];
79
+ /**
80
+ * Command that builds the frontend assets before the run. Left out, the `build`
81
+ * script of the project's package.json runs, through the package manager its
82
+ * lockfile names; `false` never builds. PW_SKIP_BUILD=1 skips it for one run.
83
+ */
84
+ build?: string | false;
79
85
  /**
80
86
  * Runs on every context a scenario test uses, after the toolkit's own headers are
81
87
  * in place. Where a consumer stubs a third-party script or adds its own routes.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -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;AA2GhE,IAAI,YAAuC,CAAA;AAE3C,SAAS,YAAY,CAAC,KAAkC;IACpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACX,gFAAgF,KAAK,CAAC,YAAY,IAAI,CACzG,CAAA;IACL,CAAC;IAED,MAAM,QAAQ,GAAG;QACb,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC;QACxE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC;KAC/E,CAAA;IAED,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC9E,wBAAwB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAElF,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB;IACzC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAS,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,UAAU,UAAU,IAAI,CAAC,CAAA;IAC5F,CAAC,CAAA;IAED,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,MAAM,CAAC,oEAAoE,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,QAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,OAAO,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IACD,8EAA8E;IAC9E,uDAAuD;IACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC1D,0EAA0E;IAC1E,MAAM,QAAQ,GAAkB;QAC5B,GAAG,MAAM;QACT,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;QAChD,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,SAAS;KACxC,CAAA;IACD,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC1B,oBAAoB,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAC/C,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IAClD,YAAY,GAAG,MAAM,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACX,kFAAkF;YAC9E,2DAA2D,CAClE,CAAA;IACL,CAAC;IACD,OAAO,YAAY,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.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;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"}
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;AAOlE,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,CAqB1C;AAED,eAAe,WAAW,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { getToolkitConfig } from './config.js';
2
+ import { runBuild } from './build.js';
2
3
  import { prepareRun } from './state/run-namespace.js';
3
4
  import { REPLAY_TEST_ID, TEST_ID_HEADER, generateTestId } from './contract.js';
4
5
  import { SECRET_HEADER, resolveApiSecret } from './http/api-secret.js';
@@ -129,6 +130,8 @@ export async function runHealthCheck(testingURL, options = {}) {
129
130
  }
130
131
  async function globalSetup() {
131
132
  const config = getToolkitConfig();
133
+ // First, so a failed build costs no state and no test database.
134
+ runBuild(config);
132
135
  prepareRun(config);
133
136
  if (process.env.PW_SKIP_HEALTH === '1') {
134
137
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.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.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Playwright toolkit for TYPO3 end-to-end tests: fixtures, content builders, per-test databases.",
5
5
  "keywords": [
6
6
  "typo3",