@lvce-editor/test-with-playwright 16.2.0 → 17.1.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 +1 -0
- package/dist/main.js +31 -24
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@ test('sample.hello-world', async () => {
|
|
|
24
24
|
- `--server-path`: explicit server entry point
|
|
25
25
|
- `--filter`: run only matching tests
|
|
26
26
|
- `--headless`: run Playwright in headless mode
|
|
27
|
+
- `--browser`: browser engine to launch, either `chromium` or `firefox`
|
|
27
28
|
- `--trace-focus`: add `traceFocus=true` to test URLs
|
|
28
29
|
|
|
29
30
|
## Environment Variables
|
package/dist/main.js
CHANGED
|
@@ -9,36 +9,28 @@ const formatDuration = duration => {
|
|
|
9
9
|
return `${roundedDuration}ms`;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
+
const getCountMessage = (count, singular, plural) => {
|
|
13
|
+
if (count === 1) {
|
|
14
|
+
return `1 ${singular}`;
|
|
15
|
+
}
|
|
16
|
+
return `${count} ${plural}`;
|
|
17
|
+
};
|
|
12
18
|
const getFinalResultMessage = (passed, skipped, failed, duration) => {
|
|
13
19
|
if (passed === 0 && skipped === 0 && failed === 0) {
|
|
14
20
|
return `no tests found`;
|
|
15
21
|
}
|
|
16
22
|
const formattedDuration = formatDuration(duration);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (passed === 0 && skipped === 1 && failed === 0) {
|
|
21
|
-
return `${skipped} test skipped in ${formattedDuration}`;
|
|
22
|
-
}
|
|
23
|
-
if (passed === 0 && skipped === 1 && failed === 1) {
|
|
24
|
-
return `${skipped} test skipped, ${failed} test failed in ${formattedDuration}`;
|
|
25
|
-
}
|
|
26
|
-
if (passed === 1 && skipped === 0 && failed === 0) {
|
|
27
|
-
return `${passed} test passed in ${formattedDuration}`;
|
|
28
|
-
}
|
|
29
|
-
if (passed === 1 && skipped === 0 && failed === 1) {
|
|
30
|
-
return `${passed} test passed, ${failed} test failed in ${formattedDuration}`;
|
|
23
|
+
const parts = [];
|
|
24
|
+
if (passed > 0) {
|
|
25
|
+
parts.push(getCountMessage(passed, 'test passed', 'tests passed'));
|
|
31
26
|
}
|
|
32
|
-
if (
|
|
33
|
-
|
|
27
|
+
if (skipped > 0) {
|
|
28
|
+
parts.push(getCountMessage(skipped, 'test skipped', 'tests skipped'));
|
|
34
29
|
}
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
if (passed > 1 && skipped === 0 && failed === 0) {
|
|
39
|
-
return `${passed} tests passed in ${formattedDuration}`;
|
|
30
|
+
if (failed > 0) {
|
|
31
|
+
parts.push(getCountMessage(failed, 'test failed', 'tests failed'));
|
|
40
32
|
}
|
|
41
|
-
return `${
|
|
33
|
+
return `${parts.join(', ')} in ${formattedDuration}`;
|
|
42
34
|
};
|
|
43
35
|
|
|
44
36
|
const handleFinalResult = finalResult => {
|
|
@@ -358,6 +350,9 @@ const parseArgv = /*@__PURE__*/getDefaultExportFromCjs(minimistExports);
|
|
|
358
350
|
const parseCliArgs = argv => {
|
|
359
351
|
const parsed = parseArgv(argv);
|
|
360
352
|
const result = Object.create(null);
|
|
353
|
+
if (parsed.browser) {
|
|
354
|
+
result.browser = parsed.browser;
|
|
355
|
+
}
|
|
361
356
|
if (parsed.filter) {
|
|
362
357
|
result.filter = parsed.filter;
|
|
363
358
|
}
|
|
@@ -391,20 +386,29 @@ const parseEnv = env => {
|
|
|
391
386
|
};
|
|
392
387
|
|
|
393
388
|
const defaultOptions = {
|
|
389
|
+
browser: 'chromium',
|
|
394
390
|
extensionPath: '',
|
|
395
391
|
headless: false,
|
|
396
392
|
testPath: ''
|
|
397
393
|
};
|
|
394
|
+
const isBrowser = value => {
|
|
395
|
+
return value === 'chromium' || value === 'firefox';
|
|
396
|
+
};
|
|
398
397
|
const getOptions = ({
|
|
399
398
|
argv,
|
|
400
399
|
env
|
|
401
400
|
}) => {
|
|
402
401
|
const parsedEnv = parseEnv(env);
|
|
403
402
|
const parsedArgs = parseCliArgs(argv);
|
|
403
|
+
const browser = parsedArgs.browser ?? defaultOptions.browser;
|
|
404
|
+
if (!isBrowser(browser)) {
|
|
405
|
+
throw new Error(`[test-with-playwright] unsupported browser: ${browser}`);
|
|
406
|
+
}
|
|
404
407
|
return {
|
|
405
408
|
...defaultOptions,
|
|
406
409
|
...parsedEnv,
|
|
407
|
-
...parsedArgs
|
|
410
|
+
...parsedArgs,
|
|
411
|
+
browser
|
|
408
412
|
};
|
|
409
413
|
};
|
|
410
414
|
|
|
@@ -1333,6 +1337,7 @@ const create = async ({
|
|
|
1333
1337
|
const RunAllTests = 'RunAllTests';
|
|
1334
1338
|
|
|
1335
1339
|
const runAllTests = async ({
|
|
1340
|
+
browser,
|
|
1336
1341
|
commandMap,
|
|
1337
1342
|
cwd,
|
|
1338
1343
|
filter,
|
|
@@ -1352,7 +1357,7 @@ const runAllTests = async ({
|
|
|
1352
1357
|
path,
|
|
1353
1358
|
stdio: 'inherit'
|
|
1354
1359
|
});
|
|
1355
|
-
await rpc.invoke(RunAllTests, onlyExtension, testPath, cwd, headless, timeout, serverPath, traceFocus, filter);
|
|
1360
|
+
await rpc.invoke(RunAllTests, onlyExtension, testPath, cwd, browser, headless, timeout, serverPath, traceFocus, filter);
|
|
1356
1361
|
await rpc.dispose();
|
|
1357
1362
|
};
|
|
1358
1363
|
|
|
@@ -1367,6 +1372,7 @@ const handleCliArgs = async ({
|
|
|
1367
1372
|
env
|
|
1368
1373
|
});
|
|
1369
1374
|
const {
|
|
1375
|
+
browser,
|
|
1370
1376
|
filter,
|
|
1371
1377
|
headless,
|
|
1372
1378
|
onlyExtension,
|
|
@@ -1377,6 +1383,7 @@ const handleCliArgs = async ({
|
|
|
1377
1383
|
const timeout = 30_000;
|
|
1378
1384
|
const testWorkerUri = getTestWorkerUrl();
|
|
1379
1385
|
await runAllTests({
|
|
1386
|
+
browser,
|
|
1380
1387
|
commandMap,
|
|
1381
1388
|
cwd,
|
|
1382
1389
|
filter,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/test-with-playwright",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.1.0",
|
|
4
4
|
"description": "CLI tool for running Playwright tests",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"main": "dist/main.js",
|
|
13
13
|
"bin": "bin/test-with-playwright.js",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@lvce-editor/test-with-playwright-worker": "
|
|
16
|
-
"@lvce-editor/test-worker": "^14.
|
|
15
|
+
"@lvce-editor/test-with-playwright-worker": "17.1.0",
|
|
16
|
+
"@lvce-editor/test-worker": "^14.19.0"
|
|
17
17
|
},
|
|
18
18
|
"engines": {
|
|
19
19
|
"node": ">=24"
|