@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 +86 -47
- package/dist/build.d.ts +8 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +73 -0
- package/dist/build.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/global-setup.d.ts.map +1 -1
- package/dist/global-setup.js +3 -0
- package/dist/global-setup.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
18
|
-
|
|
19
|
-
the
|
|
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
|
|
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
|
|
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
|
|
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
|
|
153
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
215
|
-
|
|
216
|
-
|
|
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()
|
|
338
|
-
the order you list them, you get a uid for each, and their files and child records
|
|
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
|
|
342
|
-
another and that means nothing across pages. They also cannot point at each
|
|
343
|
-
relation needs a uid, and only a save hands one back. Create what is pointed
|
|
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
|
|
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
|
|
364
|
-
fixture in your tests
|
|
365
|
-
|
|
366
|
-
|
|
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
|
-
|
|
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
|
|
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()
|
|
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
|
|
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
|
|
626
|
-
fixture root, slugs keep no test-ID suffix, setups run once with no
|
|
627
|
-
|
|
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
|
|
643
|
-
second has to stay
|
|
644
|
-
|
|
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)
|
|
659
|
-
- [DDEV add-on](https://github.com/plan2net/typo3-playwright-toolkit/tree/main/packages/ddev-typo3-playwright-toolkit)
|
|
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
|
package/dist/build.d.ts
ADDED
|
@@ -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.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/global-setup.js
CHANGED
|
@@ -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;
|
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;YACI,qBAAqB,SAAS,8BAA8B,QAAQ,CAAC,MAAM,IAAI;YAC/E,gFAAgF;YAChF,wCAAwC;YACxC,OAAO,CAAC,IAAI,CAAC;YACb,EAAE;YACF,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB;IAC1C,OAAO;QACH,+DAA+D,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;QAC1F,oFAAoF;QACpF,mDAAmD;KACtD,CAAA;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAE3E,OAAO,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,cAAc,CAAA;AAC/F,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAqB,EACrB,UAAwC,EAAE;IAE1C,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,UAAU,wBAAwB,CAAA;IAE9D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CACrC,SAAS,EACT,EAAE,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAC7C,OAAO,CAAC,SAAS,IAAI,KAAK,EAC1B,CAAC,MAAM,EAAE,EAAE,CAAC,yDAAyD,SAAS,KAAK,MAAM,IAAI,CAChG,CAAA;IAED,gFAAgF;IAChF,oDAAoD;IACpD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACX;YACI,qBAAqB,SAAS,uBAAuB;YACrD,kEAAkE;YAClE,EAAE;YACF,6DAA6D;YAC7D,4EAA4E;YAC5E,+EAA+E;SAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAA;IAEzB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CACX;YACI,oEAAoE;YACpE,eAAe,mBAAmB,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC9E,EAAE;YACF,+DAA+D;YAC/D,EAAE;YACF,sEAAsE;YACtE,oBAAoB;SACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;IACL,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,0FAA0F;AAC1F,SAAS,oBAAoB,CAAC,SAAiB,EAAE,QAA4B;IACzE,IAAI,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAM;IACV,CAAC;IAED,MAAM,IAAI,KAAK,CACX;QACI,qBAAqB,SAAS,oBAAoB,QAAQ,wBAAwB;QAClF,EAAE;QACF,GAAG,mBAAmB,CAAC,SAAS,CAAC;KACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAChC,UAAkB,EAClB,UAA0E,EAAE;IAE5E,MAAM,SAAS,GAAG,GAAG,UAAU,wBAAwB,CAAA;IACvD,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CACrG;QACI,qBAAqB,SAAS,iBAAiB,MAAM,IAAI;QACzD,gBAAgB;QAChB,yCAAyC;QACzC,+CAA+C;KAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;IAED,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QAChB,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE7D,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;SACtD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEf,MAAM,IAAI,KAAK,CACX;QACI,0BAA0B,MAAM,IAAI;QACpC,MAAM,IAAI,sEAAsE;QAChF,EAAE;QACF,+FAA+F;KAClG,CAAC,IAAI,CAAC,IAAI,CAAC,CACf,CAAA;AACL,CAAC;AAED,KAAK,UAAU,WAAW;IACtB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"global-setup.js","sourceRoot":"","sources":["../src/global-setup.ts"],"names":[],"mappings":"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"}
|