@rstest/core 0.9.3 → 0.9.5
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 +0 -228
- package/dist/0~8843.js +33 -17
- package/dist/0~browserLoader.js +1 -1
- package/dist/0~browser~1.js +4 -4
- package/dist/0~checkThresholds.js +1 -1
- package/dist/0~console.js +1 -1
- package/dist/0~fake-timers.js +1483 -0
- package/dist/0~generate.js +4 -3
- package/dist/0~happyDom.js +1 -1
- package/dist/0~jsdom.js +1 -1
- package/dist/0~listTests.js +14 -10
- package/dist/0~loadEsModule.js +3 -1
- package/dist/0~loadModule.js +1 -1
- package/dist/0~runTests.js +17 -6
- package/dist/0~snapshot.js +2140 -0
- package/dist/0~snapshot.js.LICENSE.txt +7 -0
- package/dist/0~utils.js +1 -1
- package/dist/1949.js +2919 -9808
- package/dist/1949.js.LICENSE.txt +1 -49
- package/dist/3145.js +363 -63
- package/dist/4411.js +232 -47
- package/dist/6830.js +61 -9
- package/dist/7552.js +22 -4918
- package/dist/7704.js +1 -2
- package/dist/9743.js +1982 -0
- package/dist/9784.js +1343 -0
- package/dist/{7552.js.LICENSE.txt → 9784.js.LICENSE.txt} +19 -8
- package/dist/browser-runtime/2~fake-timers.js +1653 -0
- package/dist/browser-runtime/2~snapshot.js +2138 -0
- package/dist/browser-runtime/2~snapshot.js.LICENSE.txt +7 -0
- package/dist/browser-runtime/723.js +2055 -10605
- package/dist/browser-runtime/723.js.LICENSE.txt +0 -17
- package/dist/browser-runtime/index.d.ts +189 -11
- package/dist/browser-runtime/rslib-runtime.js +0 -7
- package/dist/browser.d.ts +39 -5
- package/dist/browser.js +2 -2
- package/dist/globalSetupWorker.js +1 -1
- package/dist/index.d.ts +39 -5
- package/dist/mockRuntimeCode.js +2 -0
- package/dist/worker.d.ts +31 -5
- package/dist/worker.js +32 -11
- package/package.json +21 -22
package/dist/worker.d.ts
CHANGED
|
@@ -592,7 +592,7 @@ declare type NormalizedBrowserModeConfig = {
|
|
|
592
592
|
providerOptions: Record<string, unknown>;
|
|
593
593
|
};
|
|
594
594
|
|
|
595
|
-
declare type NormalizedConfig = Required<Omit<RstestConfig, OptionalKeys | 'pool' | 'projects' | 'coverage' | 'setupFiles' | 'globalSetup' | 'exclude' | 'testEnvironment' | 'browser'>> & Partial<Pick<RstestConfig, OptionalKeys>> & {
|
|
595
|
+
declare type NormalizedConfig = Required<Omit<RstestConfig, OptionalKeys | 'pool' | 'projects' | 'coverage' | 'setupFiles' | 'globalSetup' | 'exclude' | 'testEnvironment' | 'browser' | 'output'>> & Partial<Pick<RstestConfig, OptionalKeys>> & {
|
|
596
596
|
pool: RstestPoolOptions;
|
|
597
597
|
testEnvironment: EnvironmentWithOptions;
|
|
598
598
|
coverage: NormalizedCoverageOptions;
|
|
@@ -603,6 +603,7 @@ declare type NormalizedConfig = Required<Omit<RstestConfig, OptionalKeys | 'pool
|
|
|
603
603
|
patterns: string[];
|
|
604
604
|
override?: boolean;
|
|
605
605
|
};
|
|
606
|
+
output: NormalizedOutputConfig;
|
|
606
607
|
};
|
|
607
608
|
|
|
608
609
|
declare type NormalizedCoverageOptions = Required<Omit<CoverageOptions, 'thresholds' | 'include'>> & {
|
|
@@ -610,9 +611,16 @@ declare type NormalizedCoverageOptions = Required<Omit<CoverageOptions, 'thresho
|
|
|
610
611
|
include?: string[];
|
|
611
612
|
};
|
|
612
613
|
|
|
613
|
-
declare type
|
|
614
|
+
declare type NormalizedOutputConfig = Partial<Omit<RstestOutputConfig, 'distPath'>> & {
|
|
615
|
+
distPath: {
|
|
616
|
+
root: string;
|
|
617
|
+
};
|
|
618
|
+
};
|
|
619
|
+
|
|
620
|
+
declare type NormalizedProjectConfig = Required<Omit<NormalizedConfig, OptionalKeys | 'projects' | 'reporters' | 'pool' | 'setupFiles' | 'globalSetup' | 'output'>> & Pick<NormalizedConfig, OptionalKeys> & {
|
|
614
621
|
setupFiles: string[];
|
|
615
622
|
globalSetup: string[];
|
|
623
|
+
output?: Omit<NormalizedOutputConfig, 'distPath'>;
|
|
616
624
|
};
|
|
617
625
|
|
|
618
626
|
declare interface OldPlugin {
|
|
@@ -620,7 +628,7 @@ declare interface OldPlugin {
|
|
|
620
628
|
test: Test;
|
|
621
629
|
}
|
|
622
630
|
|
|
623
|
-
declare type OptionalKeys = 'testNamePattern' | 'plugins' | 'source' | 'resolve' | '
|
|
631
|
+
declare type OptionalKeys = 'testNamePattern' | 'plugins' | 'source' | 'resolve' | 'tools' | 'dev' | 'onConsoleLog' | 'chaiConfig' | 'hideSkippedTestFiles' | 'resolveSnapshotPath' | 'extends' | 'shard';
|
|
624
632
|
|
|
625
633
|
declare interface Options {
|
|
626
634
|
logger: {
|
|
@@ -670,7 +678,9 @@ declare type Print = (arg0: unknown) => string;
|
|
|
670
678
|
|
|
671
679
|
declare type Printer = (val: unknown, config: Config, indentation: string, depth: number, refs: Refs, hasCalledToJSON?: boolean) => string;
|
|
672
680
|
|
|
673
|
-
declare type ProjectConfig = Omit<RstestConfig, 'projects' | 'reporters' | 'pool' | 'isolate' | 'coverage' | 'resolveSnapshotPath' | 'onConsoleLog' | 'bail' | 'shard'
|
|
681
|
+
declare type ProjectConfig = Omit<RstestConfig, 'projects' | 'reporters' | 'pool' | 'isolate' | 'coverage' | 'resolveSnapshotPath' | 'onConsoleLog' | 'bail' | 'shard' | 'output'> & {
|
|
682
|
+
output?: Omit<RstestOutputConfig, 'distPath'>;
|
|
683
|
+
};
|
|
674
684
|
|
|
675
685
|
declare type ProjectContext = {
|
|
676
686
|
name: string;
|
|
@@ -1017,7 +1027,7 @@ declare interface RstestConfig {
|
|
|
1017
1027
|
plugins?: RsbuildConfig['plugins'];
|
|
1018
1028
|
source?: Pick<NonNullable<RsbuildConfig['source']>, 'define' | 'tsconfigPath' | 'decorators' | 'include' | 'exclude'>;
|
|
1019
1029
|
dev?: Pick<NonNullable<RsbuildConfig['dev']>, 'writeToDisk'>;
|
|
1020
|
-
output?:
|
|
1030
|
+
output?: RstestOutputConfig;
|
|
1021
1031
|
resolve?: RsbuildConfig['resolve'];
|
|
1022
1032
|
tools?: Pick<NonNullable<RsbuildConfig['tools']>, 'rspack' | 'swc' | 'bundlerChain'>;
|
|
1023
1033
|
}
|
|
@@ -1060,6 +1070,22 @@ declare type RstestContext = {
|
|
|
1060
1070
|
};
|
|
1061
1071
|
};
|
|
1062
1072
|
|
|
1073
|
+
declare type RstestOutputConfig = Pick<NonNullable<RsbuildConfig['output']>, 'cssModules' | 'externals' | 'cleanDistPath' | 'module'> & {
|
|
1074
|
+
distPath?: string | {
|
|
1075
|
+
root?: string;
|
|
1076
|
+
};
|
|
1077
|
+
/**
|
|
1078
|
+
* Whether to bundle third-party dependencies from node_modules.
|
|
1079
|
+
* - `true`: Always bundle all third-party dependencies.
|
|
1080
|
+
* - `false`: Always externalize third-party dependencies.
|
|
1081
|
+
*
|
|
1082
|
+
* When unset, rstest bundles dependencies in browser-like test
|
|
1083
|
+
* environments (jsdom, happy-dom, etc.) and externalizes them in the node
|
|
1084
|
+
* environment. This option is not supported in browser mode.
|
|
1085
|
+
*/
|
|
1086
|
+
bundleDependencies?: boolean;
|
|
1087
|
+
};
|
|
1088
|
+
|
|
1063
1089
|
declare type RstestPoolOptions = {
|
|
1064
1090
|
/** Pool used to run tests in. */
|
|
1065
1091
|
type?: RstestPoolType;
|
package/dist/worker.js
CHANGED
|
@@ -3,10 +3,8 @@ import { __webpack_require__ } from "./rslib-runtime.js";
|
|
|
3
3
|
import { existsSync, promises } from "node:fs";
|
|
4
4
|
import "./1255.js";
|
|
5
5
|
import { createWorkerMetaMessage, createBirpc } from "./1983.js";
|
|
6
|
-
import { basename, isAbsolute, color as logger_color, dirname, resolve as pathe_M_eThtNZ_resolve, join } from "./6830.js";
|
|
7
|
-
import { createCoverageProvider } from "./7704.js";
|
|
6
|
+
import { basename, isAbsolute, color as logger_color, dirname, globalApis, resolve as pathe_M_eThtNZ_resolve, join } from "./6830.js";
|
|
8
7
|
import { formatTestError, setRealTimers, getRealTimers } from "./7552.js";
|
|
9
|
-
import { globalApis } from "./4411.js";
|
|
10
8
|
const processSend = process.send.bind(process);
|
|
11
9
|
const processOn = process.on.bind(process);
|
|
12
10
|
const processOff = process.off.bind(process);
|
|
@@ -101,9 +99,28 @@ const registerGlobalApi = (api)=>globalApis.reduce((apis, key)=>{
|
|
|
101
99
|
}, {});
|
|
102
100
|
const globalCleanups = [];
|
|
103
101
|
let isTeardown = false;
|
|
102
|
+
const setErrorName = (error, type)=>{
|
|
103
|
+
try {
|
|
104
|
+
error.name = type;
|
|
105
|
+
return error;
|
|
106
|
+
} catch {
|
|
107
|
+
try {
|
|
108
|
+
Object.defineProperty(error, 'name', {
|
|
109
|
+
value: type,
|
|
110
|
+
configurable: true
|
|
111
|
+
});
|
|
112
|
+
return error;
|
|
113
|
+
} catch {
|
|
114
|
+
const fallbackError = new Error(error.message);
|
|
115
|
+
fallbackError.name = type;
|
|
116
|
+
fallbackError.stack = error.stack;
|
|
117
|
+
return fallbackError;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
104
121
|
const setupEnv = (env)=>{
|
|
105
122
|
if (env) Object.entries(env).forEach(([key, value])=>{
|
|
106
|
-
if (void 0 === value)
|
|
123
|
+
if (void 0 === value) Reflect.deleteProperty(process.env, key);
|
|
107
124
|
else process.env[key] = value;
|
|
108
125
|
});
|
|
109
126
|
};
|
|
@@ -152,8 +169,8 @@ const preparePool = async ({ entryInfo: { distPath, testPath }, updateSnapshot,
|
|
|
152
169
|
const { createRstestRuntime } = await import("./1949.js");
|
|
153
170
|
const unhandledErrors = [];
|
|
154
171
|
const handleError = (e, type)=>{
|
|
155
|
-
const
|
|
156
|
-
error.name
|
|
172
|
+
const rawError = 'string' == typeof e ? new Error(e) : e;
|
|
173
|
+
const error = rawError.name && 'Error' !== rawError.name ? rawError : setErrorName(rawError, type);
|
|
157
174
|
if (isTeardown) {
|
|
158
175
|
error.stack = `${logger_color.yellow('Caught error after test environment was torn down:')}\n\n${error.stack}`;
|
|
159
176
|
console.error(error);
|
|
@@ -289,14 +306,14 @@ const runInPool = async (options)=>{
|
|
|
289
306
|
project,
|
|
290
307
|
testPath,
|
|
291
308
|
tests,
|
|
292
|
-
errors: formatTestError(unhandledErrors)
|
|
309
|
+
errors: await formatTestError(unhandledErrors)
|
|
293
310
|
};
|
|
294
311
|
} catch (err) {
|
|
295
312
|
return {
|
|
296
313
|
project,
|
|
297
314
|
testPath,
|
|
298
315
|
tests: [],
|
|
299
|
-
errors: formatTestError(err)
|
|
316
|
+
errors: await formatTestError(err)
|
|
300
317
|
};
|
|
301
318
|
} finally{
|
|
302
319
|
await teardown();
|
|
@@ -311,7 +328,11 @@ const runInPool = async (options)=>{
|
|
|
311
328
|
name: '',
|
|
312
329
|
results: []
|
|
313
330
|
};
|
|
314
|
-
|
|
331
|
+
let coverageProvider = null;
|
|
332
|
+
if (options.context.runtimeConfig.coverage?.enabled) {
|
|
333
|
+
const { createCoverageProvider } = await import("./7704.js");
|
|
334
|
+
coverageProvider = await createCoverageProvider(options.context.runtimeConfig.coverage, options.context.rootPath);
|
|
335
|
+
}
|
|
315
336
|
if (coverageProvider) coverageProvider.init();
|
|
316
337
|
const { assetFiles, sourceMaps: sourceMapsFromAssets } = assets || await rpc.getAssetsByEntry();
|
|
317
338
|
sourceMaps = sourceMapsFromAssets;
|
|
@@ -350,7 +371,7 @@ const runInPool = async (options)=>{
|
|
|
350
371
|
}, api);
|
|
351
372
|
if (unhandledErrors.length > 0) {
|
|
352
373
|
results.status = 'fail';
|
|
353
|
-
results.errors = (results.errors || []).concat(...formatTestError(unhandledErrors));
|
|
374
|
+
results.errors = (results.errors || []).concat(...await formatTestError(unhandledErrors));
|
|
354
375
|
}
|
|
355
376
|
if (coverageProvider) {
|
|
356
377
|
const coverageMap = coverageProvider.collect();
|
|
@@ -372,7 +393,7 @@ const runInPool = async (options)=>{
|
|
|
372
393
|
status: 'fail',
|
|
373
394
|
name: '',
|
|
374
395
|
results: [],
|
|
375
|
-
errors: formatTestError(err)
|
|
396
|
+
errors: await formatTestError(err)
|
|
376
397
|
};
|
|
377
398
|
} finally{
|
|
378
399
|
await teardown();
|
package/package.json
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rstest/core",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"description": "The Rsbuild-based test tool.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"rstest",
|
|
7
|
+
"test",
|
|
8
|
+
"rstack",
|
|
9
|
+
"rspack"
|
|
10
|
+
],
|
|
5
11
|
"bugs": {
|
|
6
12
|
"url": "https://github.com/web-infra-dev/rstest/issues"
|
|
7
13
|
},
|
|
@@ -10,19 +16,8 @@
|
|
|
10
16
|
"url": "https://github.com/web-infra-dev/rstest",
|
|
11
17
|
"directory": "packages/core"
|
|
12
18
|
},
|
|
13
|
-
"keywords": [
|
|
14
|
-
"rstest",
|
|
15
|
-
"test",
|
|
16
|
-
"rstack",
|
|
17
|
-
"rspack"
|
|
18
|
-
],
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"type": "module",
|
|
21
|
-
"main": "./dist/index.js",
|
|
22
|
-
"types": "./dist/index.d.ts",
|
|
23
|
-
"bin": {
|
|
24
|
-
"rstest": "./bin/rstest.js"
|
|
25
|
-
},
|
|
26
21
|
"exports": {
|
|
27
22
|
".": {
|
|
28
23
|
"types": "./dist/index.d.ts",
|
|
@@ -46,6 +41,11 @@
|
|
|
46
41
|
"types": "./importMeta.d.ts"
|
|
47
42
|
}
|
|
48
43
|
},
|
|
44
|
+
"main": "./dist/index.js",
|
|
45
|
+
"types": "./dist/index.d.ts",
|
|
46
|
+
"bin": {
|
|
47
|
+
"rstest": "./bin/rstest.js"
|
|
48
|
+
},
|
|
49
49
|
"files": [
|
|
50
50
|
"bin",
|
|
51
51
|
"dist",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"importMeta.d.ts"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@rsbuild/core": "2.0.0-beta.
|
|
57
|
+
"@rsbuild/core": "2.0.0-beta.10",
|
|
58
58
|
"@types/chai": "^5.2.3",
|
|
59
59
|
"tinypool": "^2.1.0"
|
|
60
60
|
},
|
|
@@ -78,21 +78,21 @@
|
|
|
78
78
|
"@types/source-map-support": "^0.5.10",
|
|
79
79
|
"@typescript/native-preview": "7.0.0-dev.20260317.1",
|
|
80
80
|
"@vitest/expect": "^3.2.4",
|
|
81
|
+
"@vitest/pretty-format": "^3.2.4",
|
|
81
82
|
"@vitest/snapshot": "^3.2.4",
|
|
83
|
+
"@vitest/utils": "^3.2.4",
|
|
82
84
|
"birpc": "^4.0.0",
|
|
83
85
|
"cac": "^7.0.0",
|
|
84
86
|
"chai": "^6.2.2",
|
|
85
87
|
"chokidar": "^5.0.0",
|
|
86
|
-
"happy-dom": "^20.8.
|
|
87
|
-
"jest-diff": "^30.3.0",
|
|
88
|
+
"happy-dom": "^20.8.8",
|
|
88
89
|
"jsdom": "^28.1.0",
|
|
89
|
-
"memfs": "^4.
|
|
90
|
+
"memfs": "^4.57.1",
|
|
90
91
|
"package-manager-detector": "^1.6.0",
|
|
91
92
|
"pathe": "^2.0.3",
|
|
92
93
|
"picocolors": "^1.1.1",
|
|
93
|
-
"picomatch": "^4.0.
|
|
94
|
-
"
|
|
95
|
-
"rslog": "^2.0.1",
|
|
94
|
+
"picomatch": "^4.0.4",
|
|
95
|
+
"rslog": "^2.1.0",
|
|
96
96
|
"source-map-support": "^0.5.21",
|
|
97
97
|
"stacktrace-parser": "0.1.11",
|
|
98
98
|
"std-env": "^4.0.0",
|
|
@@ -102,7 +102,6 @@
|
|
|
102
102
|
"url-extras": "^0.1.0",
|
|
103
103
|
"webpack": "^5.105.4",
|
|
104
104
|
"webpack-license-plugin": "^4.5.1",
|
|
105
|
-
"@rstest/browser-ui": "0.0.0",
|
|
106
105
|
"@rstest/tsconfig": "0.0.1"
|
|
107
106
|
},
|
|
108
107
|
"peerDependencies": {
|
|
@@ -126,8 +125,8 @@
|
|
|
126
125
|
},
|
|
127
126
|
"scripts": {
|
|
128
127
|
"build": "rslib build && npx prettier ./LICENSE.md --write",
|
|
129
|
-
"typecheck": "tsc --noEmit",
|
|
130
128
|
"dev": "cross-env SOURCEMAP=true rslib build --watch",
|
|
131
|
-
"test": "npx rstest --globals"
|
|
129
|
+
"test": "npx rstest --globals",
|
|
130
|
+
"typecheck": "tsc --noEmit"
|
|
132
131
|
}
|
|
133
132
|
}
|