@rstest/core 0.0.1
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 +21 -0
- package/README.md +11 -0
- package/bin/rstest.js +20 -0
- package/dist/285.js +98 -0
- package/dist/353.js +488 -0
- package/dist/355.js +96 -0
- package/dist/629.js +80 -0
- package/dist/64.js +1735 -0
- package/dist/72.js +1309 -0
- package/dist/773.js +1709 -0
- package/dist/813.js +137 -0
- package/dist/973.js +482 -0
- package/dist/992.js +485 -0
- package/dist/cli.js +3685 -0
- package/dist/node.js +0 -0
- package/dist/public.js +4 -0
- package/dist/worker.js +5727 -0
- package/dist/worker.js.LICENSE.txt +28 -0
- package/dist-types/cli.d.ts +3 -0
- package/dist-types/node.d.ts +368 -0
- package/dist-types/public.d.ts +850 -0
- package/dist-types/worker.d.ts +646 -0
- package/globals.d.ts +13 -0
- package/importMeta.d.ts +3 -0
- package/package.json +85 -0
package/dist/355.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
export const __webpack_ids__ = [
|
|
2
|
+
"355"
|
|
3
|
+
];
|
|
4
|
+
export const __webpack_modules__ = {
|
|
5
|
+
"./src/utils/error.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
7
|
+
printError: ()=>printError
|
|
8
|
+
});
|
|
9
|
+
var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
|
|
10
|
+
var _jridgewell_trace_mapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/.pnpm/@jridgewell+trace-mapping@0.3.25/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs");
|
|
11
|
+
var stacktrace_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/.pnpm/stacktrace-parser@0.1.11/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js");
|
|
12
|
+
var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/index.ts");
|
|
13
|
+
async function printError(error, getSourcemap, rootPath) {
|
|
14
|
+
const errorName = error.name || 'Unknown Error';
|
|
15
|
+
if (error.message.includes('Vitest failed to access its internal state')) {
|
|
16
|
+
const tips = [
|
|
17
|
+
'Error: not support import `vitest` in Rstest test environment.\n',
|
|
18
|
+
'Solution:',
|
|
19
|
+
` - Update your code to use imports from "${_utils__WEBPACK_IMPORTED_MODULE_3__.$_.yellow('@rstest/core')}" instead of "${_utils__WEBPACK_IMPORTED_MODULE_3__.$_.yellow('vitest')}".`,
|
|
20
|
+
' - Enable `globals` configuration and use global API.'
|
|
21
|
+
];
|
|
22
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log(`${_utils__WEBPACK_IMPORTED_MODULE_3__.$_.red(tips.join('\n'))}\n`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log(`${_utils__WEBPACK_IMPORTED_MODULE_3__.$_.red(_utils__WEBPACK_IMPORTED_MODULE_3__.$_.bold(errorName))}${_utils__WEBPACK_IMPORTED_MODULE_3__.$_.red(`: ${error.message}`)}\n`);
|
|
26
|
+
if (error.diff) {
|
|
27
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log(error.diff);
|
|
28
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log();
|
|
29
|
+
}
|
|
30
|
+
if (error.stack) {
|
|
31
|
+
const stackFrames = await parseErrorStacktrace({
|
|
32
|
+
stack: error.stack,
|
|
33
|
+
getSourcemap
|
|
34
|
+
});
|
|
35
|
+
if (stackFrames[0]) await printCodeFrame(stackFrames[0]);
|
|
36
|
+
printStack(stackFrames, rootPath);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function printCodeFrame(frame) {
|
|
40
|
+
const filePath = frame.file?.startsWith('file') ? new URL(frame.file) : frame.file;
|
|
41
|
+
if (!filePath) return;
|
|
42
|
+
const source = node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].existsSync(filePath) ? node_fs__WEBPACK_IMPORTED_MODULE_0__["default"].readFileSync(filePath, 'utf-8') : void 0;
|
|
43
|
+
if (!source) return;
|
|
44
|
+
const { codeFrameColumns } = await __webpack_require__.e("72").then(__webpack_require__.bind(__webpack_require__, "../../node_modules/.pnpm/@babel+code-frame@7.27.1/node_modules/@babel/code-frame/lib/index.js"));
|
|
45
|
+
const result = codeFrameColumns(source, {
|
|
46
|
+
start: {
|
|
47
|
+
line: frame.lineNumber,
|
|
48
|
+
column: frame.column
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
highlightCode: true,
|
|
52
|
+
linesBelow: 2
|
|
53
|
+
});
|
|
54
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log(result);
|
|
55
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log('');
|
|
56
|
+
}
|
|
57
|
+
function printStack(stackFrames, rootPath) {
|
|
58
|
+
for (const frame of stackFrames){
|
|
59
|
+
const msg = '<unknown>' !== frame.methodName ? `at ${frame.methodName} (${(0, _utils__WEBPACK_IMPORTED_MODULE_3__.Ps)(rootPath, frame.file)}:${frame.lineNumber}:${frame.column})` : `at ${(0, _utils__WEBPACK_IMPORTED_MODULE_3__.Ps)(rootPath, frame.file)}:${frame.lineNumber}:${frame.column}`;
|
|
60
|
+
_utils__WEBPACK_IMPORTED_MODULE_3__.kg.log(_utils__WEBPACK_IMPORTED_MODULE_3__.$_.gray(` ${msg}`));
|
|
61
|
+
}
|
|
62
|
+
stackFrames.length && _utils__WEBPACK_IMPORTED_MODULE_3__.kg.log();
|
|
63
|
+
}
|
|
64
|
+
const stackIgnores = [
|
|
65
|
+
/\/@rstest\/core/,
|
|
66
|
+
/rstest\/packages\/core\/dist/,
|
|
67
|
+
/node_modules\/tinypool/,
|
|
68
|
+
/node_modules\/chai/,
|
|
69
|
+
/node_modules\/@vitest\/expect/,
|
|
70
|
+
/node_modules\/@vitest\/snapshot/,
|
|
71
|
+
/node:\w+/,
|
|
72
|
+
'<anonymous>'
|
|
73
|
+
];
|
|
74
|
+
async function parseErrorStacktrace({ stack, getSourcemap }) {
|
|
75
|
+
return Promise.all((0, stacktrace_parser__WEBPACK_IMPORTED_MODULE_2__.Q)(stack).filter((frame)=>frame.file && !stackIgnores.some((entry)=>frame.file?.match(entry))).map(async (frame)=>{
|
|
76
|
+
const sourcemap = getSourcemap(frame.file);
|
|
77
|
+
if (sourcemap) {
|
|
78
|
+
const traceMap = new _jridgewell_trace_mapping__WEBPACK_IMPORTED_MODULE_1__.s7(sourcemap);
|
|
79
|
+
const { line, column, source, name } = (0, _jridgewell_trace_mapping__WEBPACK_IMPORTED_MODULE_1__.Sk)(traceMap, {
|
|
80
|
+
line: frame.lineNumber,
|
|
81
|
+
column: frame.column
|
|
82
|
+
});
|
|
83
|
+
if (!source) return null;
|
|
84
|
+
return {
|
|
85
|
+
...frame,
|
|
86
|
+
file: source,
|
|
87
|
+
lineNumber: line,
|
|
88
|
+
name,
|
|
89
|
+
column
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return frame;
|
|
93
|
+
})).then((frames)=>frames.filter((frame)=>null !== frame));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
package/dist/629.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const __webpack_ids__ = [
|
|
2
|
+
"629"
|
|
3
|
+
];
|
|
4
|
+
export const __webpack_modules__ = {
|
|
5
|
+
"./src/core/runTests.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
7
|
+
runTests: ()=>runTests
|
|
8
|
+
});
|
|
9
|
+
var _pool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/pool/index.ts");
|
|
10
|
+
var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts");
|
|
11
|
+
var _rsbuild__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/core/rsbuild.ts");
|
|
12
|
+
async function runTests(context, fileFilters) {
|
|
13
|
+
const { normalizedConfig: { include, exclude, root, name, setupFiles: setups, includeSource }, rootPath, reporters, snapshotManager, command } = context;
|
|
14
|
+
const globTestSourceEntries = async ()=>{
|
|
15
|
+
const entries = await (0, _utils__WEBPACK_IMPORTED_MODULE_1__.GL)({
|
|
16
|
+
include,
|
|
17
|
+
exclude,
|
|
18
|
+
includeSource,
|
|
19
|
+
root,
|
|
20
|
+
fileFilters
|
|
21
|
+
});
|
|
22
|
+
if (!Object.keys(entries).length) {
|
|
23
|
+
_utils__WEBPACK_IMPORTED_MODULE_1__.kg.log(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.red('No test files found.'));
|
|
24
|
+
_utils__WEBPACK_IMPORTED_MODULE_1__.kg.log('');
|
|
25
|
+
if (fileFilters.length) _utils__WEBPACK_IMPORTED_MODULE_1__.kg.log(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray('filter: '), fileFilters.join(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray(', ')));
|
|
26
|
+
_utils__WEBPACK_IMPORTED_MODULE_1__.kg.log(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray('include:'), include.join(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray(', ')));
|
|
27
|
+
_utils__WEBPACK_IMPORTED_MODULE_1__.kg.log(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray('exclude:'), exclude.join(_utils__WEBPACK_IMPORTED_MODULE_1__.$_.gray(', ')));
|
|
28
|
+
_utils__WEBPACK_IMPORTED_MODULE_1__.kg.log('');
|
|
29
|
+
}
|
|
30
|
+
return entries;
|
|
31
|
+
};
|
|
32
|
+
const setupFiles = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aA)(setups, rootPath);
|
|
33
|
+
const rsbuildInstance = await (0, _rsbuild__WEBPACK_IMPORTED_MODULE_2__.z)(context, globTestSourceEntries, setupFiles);
|
|
34
|
+
const getRsbuildStats = await (0, _rsbuild__WEBPACK_IMPORTED_MODULE_2__.r)({
|
|
35
|
+
name,
|
|
36
|
+
globTestSourceEntries,
|
|
37
|
+
setupFiles,
|
|
38
|
+
rsbuildInstance,
|
|
39
|
+
rootPath
|
|
40
|
+
});
|
|
41
|
+
const run = async ()=>{
|
|
42
|
+
const { entries, setupEntries, assetFiles, sourceMaps, getSourcemap, close, buildTime } = await getRsbuildStats();
|
|
43
|
+
const testStart = Date.now();
|
|
44
|
+
const pool = await (0, _pool__WEBPACK_IMPORTED_MODULE_0__.K)({
|
|
45
|
+
entries,
|
|
46
|
+
sourceMaps,
|
|
47
|
+
setupEntries,
|
|
48
|
+
assetFiles,
|
|
49
|
+
context
|
|
50
|
+
});
|
|
51
|
+
const { results, testResults } = await pool.runTests();
|
|
52
|
+
const testTime = Date.now() - testStart;
|
|
53
|
+
const duration = {
|
|
54
|
+
totalTime: testTime + buildTime,
|
|
55
|
+
buildTime,
|
|
56
|
+
testTime
|
|
57
|
+
};
|
|
58
|
+
if (results.some((r)=>'fail' === r.status)) process.exitCode = 1;
|
|
59
|
+
for (const reporter of reporters)await reporter.onTestRunEnd?.({
|
|
60
|
+
results,
|
|
61
|
+
testResults,
|
|
62
|
+
snapshotSummary: snapshotManager.summary,
|
|
63
|
+
duration,
|
|
64
|
+
getSourcemap
|
|
65
|
+
});
|
|
66
|
+
return async ()=>{
|
|
67
|
+
await close();
|
|
68
|
+
await pool.close();
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
if ('watch' === command) rsbuildInstance.onDevCompileDone(async ()=>{
|
|
72
|
+
await run();
|
|
73
|
+
});
|
|
74
|
+
else {
|
|
75
|
+
const close = await run();
|
|
76
|
+
await close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|