@rstest/core 0.9.2 → 0.9.3
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/LICENSE.md +1 -1
- package/dist/0~8843.js +5 -5
- package/dist/0~browserLoader.js +8 -8
- package/dist/0~browser~1.js +31 -31
- package/dist/0~checkThresholds.js +5 -5
- package/dist/{0~esm.js → 0~chokidar.js} +61 -18
- package/dist/0~console.js +7 -7
- package/dist/0~generate.js +4 -0
- package/dist/0~listTests.js +2 -2
- package/dist/0~mergeReports.js +127 -0
- package/dist/0~restart.js +3 -3
- package/dist/0~runTests.js +41 -41
- package/dist/1949.js +27 -11
- package/dist/255.js +3 -3
- package/dist/3145.js +160 -81
- package/dist/4411.js +3 -3
- package/dist/6830.js +43 -28
- package/dist/7552.js +82 -65
- package/dist/7704.js +2 -2
- package/dist/browser-runtime/723.js +142 -93
- package/dist/browser-runtime/index.d.ts +40 -5
- package/dist/browser.d.ts +40 -5
- package/dist/globalSetupWorker.js +4 -2
- package/dist/index.d.ts +53 -6
- package/dist/worker.d.ts +30 -3
- package/dist/worker.js +2 -2
- package/package.json +19 -18
- /package/dist/{0~esm.js.LICENSE.txt → 0~chokidar.js.LICENSE.txt} +0 -0
package/dist/0~restart.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { __webpack_require__ } from "./rslib-runtime.js";
|
|
3
3
|
import node_path from "node:path";
|
|
4
|
-
import { color, logger as logger_logger, isTTY } from "./6830.js";
|
|
4
|
+
import { color as logger_color, logger as logger_logger, isTTY } from "./6830.js";
|
|
5
5
|
import { runRest } from "./3145.js";
|
|
6
6
|
import "./4411.js";
|
|
7
7
|
const GLOB_REGEX = /[*?{}[\]()!@+|]/;
|
|
8
8
|
const isGlob = (str)=>GLOB_REGEX.test(str);
|
|
9
9
|
async function createChokidar(pathOrGlobs, root, options) {
|
|
10
|
-
const chokidar = await import("./0~
|
|
10
|
+
const chokidar = await import("./0~chokidar.js");
|
|
11
11
|
const watchFiles = new Set();
|
|
12
12
|
const globPatterns = pathOrGlobs.filter((pathOrGlob)=>{
|
|
13
13
|
if (isGlob(pathOrGlob)) return true;
|
|
@@ -36,7 +36,7 @@ const beforeRestart = async ({ filePath, root, clear = true })=>{
|
|
|
36
36
|
if (clear) clearConsole();
|
|
37
37
|
if (filePath) {
|
|
38
38
|
const filename = node_path.relative(root, filePath);
|
|
39
|
-
logger_logger.info(`restarting Rstest as ${
|
|
39
|
+
logger_logger.info(`restarting Rstest as ${logger_color.yellow(filename)} changed\n`);
|
|
40
40
|
} else logger_logger.info('restarting Rstest...\n');
|
|
41
41
|
for (const cleaner of cleaners)await cleaner();
|
|
42
42
|
cleaners = [];
|
package/dist/0~runTests.js
CHANGED
|
@@ -4,7 +4,7 @@ import { resolveShardedEntries, getTestEntries } from "./4411.js";
|
|
|
4
4
|
import { createCoverageProvider } from "./7704.js";
|
|
5
5
|
import { prepareRsbuild, createPool, createRsbuildServer, runGlobalTeardown, runGlobalSetup } from "./0~8843.js";
|
|
6
6
|
import { loadBrowserModule } from "./0~browserLoader.js";
|
|
7
|
-
import { logger as logger_logger, isTTY, color, clearScreen } from "./6830.js";
|
|
7
|
+
import { logger as logger_logger, isTTY, color as logger_color, clearScreen } from "./6830.js";
|
|
8
8
|
const isCliShortcutsEnabled = ()=>isTTY('stdin');
|
|
9
9
|
async function setupCliShortcuts({ closeServer, runAll, updateSnapshot, runFailedTests, runWithTestNamePattern, runWithFileFilters }) {
|
|
10
10
|
const { createInterface, emitKeypressEvents } = await import("node:readline");
|
|
@@ -66,28 +66,28 @@ async function setupCliShortcuts({ closeServer, runAll, updateSnapshot, runFaile
|
|
|
66
66
|
const shortcuts = [
|
|
67
67
|
{
|
|
68
68
|
key: 'f',
|
|
69
|
-
description: `${
|
|
69
|
+
description: `${logger_color.bold('f')} ${logger_color.dim('rerun failed tests')}`,
|
|
70
70
|
action: async ()=>{
|
|
71
71
|
await runFailedTests();
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
key: 'a',
|
|
76
|
-
description: `${
|
|
76
|
+
description: `${logger_color.bold('a')} ${logger_color.dim('rerun all tests')}`,
|
|
77
77
|
action: async ()=>{
|
|
78
78
|
await runAll();
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
key: 'u',
|
|
83
|
-
description: `${
|
|
83
|
+
description: `${logger_color.bold('u')} ${logger_color.dim('update snapshot')}`,
|
|
84
84
|
action: async ()=>{
|
|
85
85
|
await updateSnapshot();
|
|
86
86
|
}
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
key: 't',
|
|
90
|
-
description: `${
|
|
90
|
+
description: `${logger_color.bold('t')} ${logger_color.dim('filter by a test name regex pattern')}`,
|
|
91
91
|
action: ()=>{
|
|
92
92
|
clearCurrentInputLine();
|
|
93
93
|
promptInput('Enter test name pattern (empty to clear): ', async (pattern)=>{
|
|
@@ -97,7 +97,7 @@ async function setupCliShortcuts({ closeServer, runAll, updateSnapshot, runFaile
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
key: 'p',
|
|
100
|
-
description: `${
|
|
100
|
+
description: `${logger_color.bold('p')} ${logger_color.dim('filter by a filename regex pattern')}`,
|
|
101
101
|
action: ()=>{
|
|
102
102
|
clearCurrentInputLine();
|
|
103
103
|
promptInput('Enter file name pattern (empty to clear): ', async (input)=>{
|
|
@@ -108,14 +108,14 @@ async function setupCliShortcuts({ closeServer, runAll, updateSnapshot, runFaile
|
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
key: 'c',
|
|
111
|
-
description: `${
|
|
111
|
+
description: `${logger_color.bold('c')} ${logger_color.dim('clear screen')}`,
|
|
112
112
|
action: ()=>{
|
|
113
113
|
clearScreen(true);
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
key: 'q',
|
|
118
|
-
description: `${
|
|
118
|
+
description: `${logger_color.bold('q')} ${logger_color.dim('quit process')}`,
|
|
119
119
|
action: async ()=>{
|
|
120
120
|
try {
|
|
121
121
|
await closeServer();
|
|
@@ -139,7 +139,7 @@ async function setupCliShortcuts({ closeServer, runAll, updateSnapshot, runFaile
|
|
|
139
139
|
}
|
|
140
140
|
if ('h' === str) {
|
|
141
141
|
clearCurrentInputLine();
|
|
142
|
-
let message = ` ${
|
|
142
|
+
let message = ` ${logger_color.bold(logger_color.blue('Shortcuts:'))}\n`;
|
|
143
143
|
for (const shortcut of shortcuts)message += ` ${shortcut.description}\n`;
|
|
144
144
|
logger_logger.log(message);
|
|
145
145
|
}
|
|
@@ -175,7 +175,7 @@ async function runTests(context) {
|
|
|
175
175
|
const shouldUnifyReporter = !isWatchMode && hasBrowserProjects && hasNodeProjects;
|
|
176
176
|
if (hasBrowserProjects && !hasNodeProjects) {
|
|
177
177
|
const { coverage } = context.normalizedConfig;
|
|
178
|
-
if (coverage.enabled) logger_logger.log(` ${
|
|
178
|
+
if (coverage.enabled) logger_logger.log(` ${logger_color.gray('Coverage enabled with')} %s\n`, logger_color.yellow(coverage.provider));
|
|
179
179
|
const browserResult = await runBrowserModeTests(context, browserProjects, {
|
|
180
180
|
skipOnTestRunEnd: false
|
|
181
181
|
});
|
|
@@ -275,7 +275,7 @@ async function runTests(context) {
|
|
|
275
275
|
recommendWorkerCount
|
|
276
276
|
});
|
|
277
277
|
const coverageProvider = coverage.enabled ? await createCoverageProvider(coverage, context.rootPath) : null;
|
|
278
|
-
if (coverageProvider) logger_logger.log(` ${
|
|
278
|
+
if (coverageProvider) logger_logger.log(` ${logger_color.gray('Coverage enabled with')} %s\n`, logger_color.yellow(coverage.provider));
|
|
279
279
|
const run = async ({ fileFilters, mode = 'all', buildStart = Date.now() } = {})=>{
|
|
280
280
|
for (const reporter of reporters)await reporter.onTestRunStart?.();
|
|
281
281
|
let testStart;
|
|
@@ -312,10 +312,10 @@ async function runTests(context) {
|
|
|
312
312
|
currentDeletedEntries.push(...deletedEntries);
|
|
313
313
|
let finalEntries = entries;
|
|
314
314
|
if ('on-demand' === mode) {
|
|
315
|
-
if (0 === affectedEntries.length) logger_logger.debug(
|
|
316
|
-
else logger_logger.debug(
|
|
315
|
+
if (0 === affectedEntries.length) logger_logger.debug(logger_color.yellow(`No test files need re-run in project(${p.environmentName}).`));
|
|
316
|
+
else logger_logger.debug(logger_color.yellow(`Test files to re-run in project(${p.environmentName}):\n`) + affectedEntries.map((e)=>e.testPath).join('\n') + '\n');
|
|
317
317
|
finalEntries = affectedEntries;
|
|
318
|
-
} else logger_logger.debug(
|
|
318
|
+
} else logger_logger.debug(logger_color.yellow(fileFilters?.length ? `Run filtered tests in project(${p.environmentName}).\n` : `Run all tests in project(${p.environmentName}).\n`));
|
|
319
319
|
currentEntries.push(...finalEntries);
|
|
320
320
|
const { results, testResults } = await pool.runTests({
|
|
321
321
|
entries: finalEntries,
|
|
@@ -370,25 +370,25 @@ async function runTests(context) {
|
|
|
370
370
|
const nodeHasFailure = results.some((r)=>'fail' === r.status) || errors.length;
|
|
371
371
|
const browserHasFailure = shouldUnifyReporter && browserResult?.hasFailure;
|
|
372
372
|
if (0 === results.length && !errors.length) {
|
|
373
|
-
if ('watch' === command) if ('on-demand' === mode) logger_logger.log(
|
|
374
|
-
else logger_logger.log(
|
|
373
|
+
if ('watch' === command) if ('on-demand' === mode) logger_logger.log(logger_color.yellow('No test files need re-run.'));
|
|
374
|
+
else logger_logger.log(logger_color.yellow('No test files found.'));
|
|
375
375
|
else {
|
|
376
376
|
const code = context.normalizedConfig.passWithNoTests ? 0 : 1;
|
|
377
377
|
const message = `No test files found, exiting with code ${code}.`;
|
|
378
|
-
if (0 === code) logger_logger.log(
|
|
379
|
-
else logger_logger.error(
|
|
378
|
+
if (0 === code) logger_logger.log(logger_color.yellow(message));
|
|
379
|
+
else logger_logger.error(logger_color.red(message));
|
|
380
380
|
process.exitCode = code;
|
|
381
381
|
}
|
|
382
382
|
if ('all' === mode) {
|
|
383
|
-
if (context.fileFilters?.length) logger_logger.log(
|
|
383
|
+
if (context.fileFilters?.length) logger_logger.log(logger_color.gray('filter: '), context.fileFilters.join(logger_color.gray(', ')));
|
|
384
384
|
allProjects.forEach((p)=>{
|
|
385
385
|
if (allProjects.length > 1) {
|
|
386
386
|
logger_logger.log('');
|
|
387
|
-
logger_logger.log(
|
|
387
|
+
logger_logger.log(logger_color.gray('project:'), p.name);
|
|
388
388
|
}
|
|
389
|
-
logger_logger.log(
|
|
390
|
-
logger_logger.log(
|
|
391
|
-
logger_logger.log(
|
|
389
|
+
logger_logger.log(logger_color.gray('root:'), p.rootPath);
|
|
390
|
+
logger_logger.log(logger_color.gray('include:'), p.normalizedConfig.include.join(logger_color.gray(', ')));
|
|
391
|
+
logger_logger.log(logger_color.gray('exclude:'), p.normalizedConfig.exclude.patterns.join(logger_color.gray(', ')));
|
|
392
392
|
});
|
|
393
393
|
}
|
|
394
394
|
}
|
|
@@ -409,7 +409,7 @@ async function runTests(context) {
|
|
|
409
409
|
}
|
|
410
410
|
if (isFailure) {
|
|
411
411
|
const bail = context.normalizedConfig.bail;
|
|
412
|
-
if (bail && context.stateManager.getCountOfFailedTests() >= bail) logger_logger.log(
|
|
412
|
+
if (bail && context.stateManager.getCountOfFailedTests() >= bail) logger_logger.log(logger_color.yellow(`Test run aborted due to reaching the bail limit of ${bail} failed test(s).`));
|
|
413
413
|
}
|
|
414
414
|
} finally{
|
|
415
415
|
await browserClose?.();
|
|
@@ -426,11 +426,11 @@ async function runTests(context) {
|
|
|
426
426
|
await pool.close();
|
|
427
427
|
await closeServer();
|
|
428
428
|
} catch (error) {
|
|
429
|
-
logger_logger.log(
|
|
429
|
+
logger_logger.log(logger_color.red(`Error during cleanup: ${error}`));
|
|
430
430
|
}
|
|
431
431
|
};
|
|
432
432
|
const handleSignal = async (signal)=>{
|
|
433
|
-
logger_logger.log(
|
|
433
|
+
logger_logger.log(logger_color.yellow(`\nReceived ${signal}, cleaning up...`));
|
|
434
434
|
await cleanup();
|
|
435
435
|
process.exit(getSignalExitCode(signal));
|
|
436
436
|
};
|
|
@@ -438,9 +438,9 @@ async function runTests(context) {
|
|
|
438
438
|
process.on('SIGTERM', handleSignal);
|
|
439
439
|
process.on('SIGTSTP', handleSignal);
|
|
440
440
|
const afterTestsWatchRun = ()=>{
|
|
441
|
-
logger_logger.log(
|
|
442
|
-
if (enableCliShortcuts) if (snapshotManager.summary.unmatched) logger_logger.log(` ${
|
|
443
|
-
else logger_logger.log(` ${
|
|
441
|
+
logger_logger.log(logger_color.green(' Waiting for file changes...'));
|
|
442
|
+
if (enableCliShortcuts) if (snapshotManager.summary.unmatched) logger_logger.log(` ${logger_color.dim('press')} ${logger_color.yellow(logger_color.bold('u'))} ${logger_color.dim('to update snapshot')}${logger_color.dim(', press')} ${logger_color.bold('h')} ${logger_color.dim('to show help')}\n`);
|
|
443
|
+
else logger_logger.log(` ${logger_color.dim('press')} ${logger_color.bold('h')} ${logger_color.dim('to show help')}${logger_color.dim(', press')} ${logger_color.bold('q')} ${logger_color.dim('to quit')}\n`);
|
|
444
444
|
};
|
|
445
445
|
const { onBeforeRestart } = await import("./0~restart.js");
|
|
446
446
|
onBeforeRestart(async ()=>{
|
|
@@ -479,20 +479,20 @@ async function runTests(context) {
|
|
|
479
479
|
runWithTestNamePattern: async (pattern)=>{
|
|
480
480
|
clearScreen();
|
|
481
481
|
context.normalizedConfig.testNamePattern = pattern;
|
|
482
|
-
if (pattern) logger_logger.log(`\n${
|
|
483
|
-
else logger_logger.log(`\n${
|
|
482
|
+
if (pattern) logger_logger.log(`\n${logger_color.dim('Applied testNamePattern:')} ${logger_color.bold(pattern)}\n`);
|
|
483
|
+
else logger_logger.log(`\n${logger_color.dim('Cleared testNamePattern filter')}\n`);
|
|
484
484
|
snapshotManager.clear();
|
|
485
485
|
await run();
|
|
486
486
|
afterTestsWatchRun();
|
|
487
487
|
},
|
|
488
488
|
runWithFileFilters: async (filters)=>{
|
|
489
489
|
clearScreen();
|
|
490
|
-
if (filters && filters.length > 0) logger_logger.log(`\n${
|
|
491
|
-
else logger_logger.log(`\n${
|
|
490
|
+
if (filters && filters.length > 0) logger_logger.log(`\n${logger_color.dim('Applied file filters:')} ${logger_color.bold(filters.join(', '))}\n`);
|
|
491
|
+
else logger_logger.log(`\n${logger_color.dim('Cleared file filters')}\n`);
|
|
492
492
|
snapshotManager.clear();
|
|
493
493
|
context.fileFilters = filters;
|
|
494
494
|
const entries = await Promise.all(projects.map(async (p)=>globTestSourceEntries(p.environmentName))).then((entries)=>entries.reduce((acc, entry)=>acc.concat(...Object.values(entry)), []));
|
|
495
|
-
if (!entries.length) return void logger_logger.log(filters ?
|
|
495
|
+
if (!entries.length) return void logger_logger.log(filters ? logger_color.yellow(`\nNo matching test files to run with current file filters: ${filters.join(',')}\n`) : logger_color.yellow('\nNo matching test files to run.\n'));
|
|
496
496
|
await run({
|
|
497
497
|
fileFilters: entries
|
|
498
498
|
});
|
|
@@ -500,7 +500,7 @@ async function runTests(context) {
|
|
|
500
500
|
},
|
|
501
501
|
runFailedTests: async ()=>{
|
|
502
502
|
const failedTests = context.reporterResults.results.filter((result)=>'fail' === result.status).map((r)=>r.testPath);
|
|
503
|
-
if (!failedTests.length) return void logger_logger.log(
|
|
503
|
+
if (!failedTests.length) return void logger_logger.log(logger_color.yellow('\nNo failed tests were found that needed to be rerun.'));
|
|
504
504
|
clearScreen();
|
|
505
505
|
snapshotManager.clear();
|
|
506
506
|
await run({
|
|
@@ -510,7 +510,7 @@ async function runTests(context) {
|
|
|
510
510
|
afterTestsWatchRun();
|
|
511
511
|
},
|
|
512
512
|
updateSnapshot: async ()=>{
|
|
513
|
-
if (!snapshotManager.summary.unmatched) return void logger_logger.log(
|
|
513
|
+
if (!snapshotManager.summary.unmatched) return void logger_logger.log(logger_color.yellow('\nNo snapshots were found that needed to be updated.'));
|
|
514
514
|
const failedTests = context.reporterResults.results.filter((result)=>result.snapshotResult?.unmatched).map((r)=>r.testPath);
|
|
515
515
|
clearScreen();
|
|
516
516
|
const originalUpdateSnapshot = snapshotManager.options.updateSnapshot;
|
|
@@ -538,21 +538,21 @@ async function runTests(context) {
|
|
|
538
538
|
await pool.close();
|
|
539
539
|
await closeServer();
|
|
540
540
|
} catch (error) {
|
|
541
|
-
logger_logger.log(
|
|
541
|
+
logger_logger.log(logger_color.red(`Error during cleanup: ${error}`));
|
|
542
542
|
}
|
|
543
543
|
};
|
|
544
544
|
const unExpectedExit = (code)=>{
|
|
545
|
-
if (isTeardown) logger_logger.log(
|
|
545
|
+
if (isTeardown) logger_logger.log(logger_color.yellow(`Rstest exited unexpectedly with code ${code}, this is likely caused by test environment teardown.`));
|
|
546
546
|
else {
|
|
547
|
-
logger_logger.log(
|
|
547
|
+
logger_logger.log(logger_color.red(`Rstest exited unexpectedly with code ${code}, terminating test run.`));
|
|
548
548
|
runGlobalTeardown().catch((error)=>{
|
|
549
|
-
logger_logger.log(
|
|
549
|
+
logger_logger.log(logger_color.red(`Error in global teardown: ${error}`));
|
|
550
550
|
});
|
|
551
551
|
process.exitCode = 1;
|
|
552
552
|
}
|
|
553
553
|
};
|
|
554
554
|
const handleSignal = async (signal)=>{
|
|
555
|
-
logger_logger.log(
|
|
555
|
+
logger_logger.log(logger_color.yellow(`\nReceived ${signal}, cleaning up...`));
|
|
556
556
|
await cleanup();
|
|
557
557
|
process.exit(getSignalExitCode(signal));
|
|
558
558
|
};
|
package/dist/1949.js
CHANGED
|
@@ -3,7 +3,7 @@ import "node:module";
|
|
|
3
3
|
import * as __rspack_external_node_util_1b29d436 from "node:util";
|
|
4
4
|
import { __webpack_require__ } from "./rslib-runtime.js";
|
|
5
5
|
import { isatty } from "node:tty";
|
|
6
|
-
import { getRealTimers, TestRegisterError, formatTestError, formatName } from "./7552.js";
|
|
6
|
+
import { parseTemplateTable, getRealTimers, TestRegisterError, formatTestError, formatName, isTemplateStringsArray } from "./7552.js";
|
|
7
7
|
import { getTaskNameWithPrefix, isObject as helper_isObject, castArray, resolve as pathe_M_eThtNZ_resolve, normalize } from "./6830.js";
|
|
8
8
|
import { ROOT_SUITE_NAME } from "./4411.js";
|
|
9
9
|
import { parse } from "./1672.js";
|
|
@@ -190,7 +190,7 @@ __webpack_require__.add({
|
|
|
190
190
|
}
|
|
191
191
|
module.exports = valueToString;
|
|
192
192
|
},
|
|
193
|
-
"../../node_modules/.pnpm/@sinonjs+fake-timers@15.1.
|
|
193
|
+
"../../node_modules/.pnpm/@sinonjs+fake-timers@15.1.1/node_modules/@sinonjs/fake-timers/src/fake-timers-src.js" (__unused_rspack_module, exports, __webpack_require__) {
|
|
194
194
|
const globalObject = __webpack_require__("../../node_modules/.pnpm/@sinonjs+commons@3.0.1/node_modules/@sinonjs/commons/lib/index.js").global;
|
|
195
195
|
let timersModule, timersPromisesModule;
|
|
196
196
|
try {
|
|
@@ -15922,16 +15922,24 @@ const createRuntimeAPI = ({ testPath, runtimeConfig, project })=>{
|
|
|
15922
15922
|
location: getLocation(),
|
|
15923
15923
|
runMode: condition ? 'skip' : options.runMode
|
|
15924
15924
|
});
|
|
15925
|
-
testFn.each = (
|
|
15925
|
+
testFn.each = (...args)=>{
|
|
15926
|
+
const location = getLocation();
|
|
15927
|
+
const cases = isTemplateStringsArray(args[0]) ? parseTemplateTable(args[0], ...args.slice(1)) : args[0];
|
|
15928
|
+
return runtimeInstance.each({
|
|
15926
15929
|
cases,
|
|
15927
15930
|
...options,
|
|
15928
|
-
location
|
|
15931
|
+
location
|
|
15929
15932
|
});
|
|
15930
|
-
|
|
15933
|
+
};
|
|
15934
|
+
testFn.for = (...args)=>{
|
|
15935
|
+
const location = getLocation();
|
|
15936
|
+
const cases = isTemplateStringsArray(args[0]) ? parseTemplateTable(args[0], ...args.slice(1)) : args[0];
|
|
15937
|
+
return runtimeInstance.for({
|
|
15931
15938
|
cases,
|
|
15932
15939
|
...options,
|
|
15933
|
-
location
|
|
15940
|
+
location
|
|
15934
15941
|
});
|
|
15942
|
+
};
|
|
15935
15943
|
return testFn;
|
|
15936
15944
|
};
|
|
15937
15945
|
const it = createTestAPI();
|
|
@@ -16001,16 +16009,24 @@ const createRuntimeAPI = ({ testPath, runtimeConfig, project })=>{
|
|
|
16001
16009
|
location: getLocation(),
|
|
16002
16010
|
runMode: condition ? options.runMode : 'skip'
|
|
16003
16011
|
});
|
|
16004
|
-
describeFn.each = (
|
|
16012
|
+
describeFn.each = (...args)=>{
|
|
16013
|
+
const location = getLocation();
|
|
16014
|
+
const cases = isTemplateStringsArray(args[0]) ? parseTemplateTable(args[0], ...args.slice(1)) : args[0];
|
|
16015
|
+
return runtimeInstance.describeEach({
|
|
16005
16016
|
cases,
|
|
16006
16017
|
...options,
|
|
16007
|
-
location
|
|
16018
|
+
location
|
|
16008
16019
|
});
|
|
16009
|
-
|
|
16020
|
+
};
|
|
16021
|
+
describeFn.for = (...args)=>{
|
|
16022
|
+
const location = getLocation();
|
|
16023
|
+
const cases = isTemplateStringsArray(args[0]) ? parseTemplateTable(args[0], ...args.slice(1)) : args[0];
|
|
16024
|
+
return runtimeInstance.describeFor({
|
|
16010
16025
|
cases,
|
|
16011
16026
|
...options,
|
|
16012
|
-
location
|
|
16027
|
+
location
|
|
16013
16028
|
});
|
|
16029
|
+
};
|
|
16014
16030
|
return describeFn;
|
|
16015
16031
|
};
|
|
16016
16032
|
const describe = createDescribeAPI();
|
|
@@ -16088,7 +16104,7 @@ function toTestInfo(test) {
|
|
|
16088
16104
|
runMode: test.runMode
|
|
16089
16105
|
};
|
|
16090
16106
|
}
|
|
16091
|
-
const fake_timers_src = __webpack_require__("../../node_modules/.pnpm/@sinonjs+fake-timers@15.1.
|
|
16107
|
+
const fake_timers_src = __webpack_require__("../../node_modules/.pnpm/@sinonjs+fake-timers@15.1.1/node_modules/@sinonjs/fake-timers/src/fake-timers-src.js");
|
|
16092
16108
|
const fakeTimers_RealDate = Date;
|
|
16093
16109
|
class FakeTimers {
|
|
16094
16110
|
_clock;
|
package/dist/255.js
CHANGED
|
@@ -2,7 +2,7 @@ import "node:module";
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { rspack } from "@rsbuild/core";
|
|
5
|
-
import { getAbsolutePath, color } from "./6830.js";
|
|
5
|
+
import { getAbsolutePath, color as logger_color } from "./6830.js";
|
|
6
6
|
import { formatTestEntryName } from "./4411.js";
|
|
7
7
|
import { posix } from "./7011.js";
|
|
8
8
|
const tryResolve = (request, rootPath)=>{
|
|
@@ -24,8 +24,8 @@ const getSetupFiles = (setups, rootPath)=>{
|
|
|
24
24
|
const setupFilePath = getAbsolutePath(rootPath, setupFile);
|
|
25
25
|
try {
|
|
26
26
|
if (!existsSync(setupFilePath)) {
|
|
27
|
-
let errorMessage = `Setup file ${
|
|
28
|
-
if (setupFilePath !== setupFile) errorMessage +=
|
|
27
|
+
let errorMessage = `Setup file ${logger_color.red(setupFile)} not found`;
|
|
28
|
+
if (setupFilePath !== setupFile) errorMessage += logger_color.gray(` (resolved path: ${setupFilePath})`);
|
|
29
29
|
throw errorMessage;
|
|
30
30
|
}
|
|
31
31
|
const relativePath = posix.relative(rootPath, setupFilePath);
|