@rspack-canary/test-tools 1.5.9-canary-b4bf7a8b-20251011023631 → 1.5.9-canary-a915dabc-20251013174148
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/dist/case/builtin.js +0 -22
- package/dist/case/cache.js +1 -2
- package/dist/case/common.js +5 -1
- package/dist/case/config.js +1 -2
- package/dist/case/diagnostic.js +1 -2
- package/dist/case/error.d.ts +1 -0
- package/dist/case/error.js +25 -6
- package/dist/case/hash.js +1 -2
- package/dist/case/hook.js +3 -4
- package/dist/case/hot.js +1 -2
- package/dist/case/index.d.ts +1 -1
- package/dist/case/index.js +3 -1
- package/dist/case/normal.d.ts +2 -0
- package/dist/case/normal.js +19 -8
- package/dist/case/stats-output.js +1 -2
- package/dist/compare/compare.js +6 -3
- package/dist/helper/directory.js +1 -1
- package/dist/helper/expect/error.js +1 -1
- package/dist/helper/expect/placeholder.js +7 -7
- package/dist/helper/expect/to-match-file-snapshot.d.ts +0 -1
- package/dist/helper/hot-update/plugin.js +6 -1
- package/dist/helper/legacy/supportsTextDecoder.d.ts +2 -0
- package/dist/helper/legacy/supportsTextDecoder.js +10 -0
- package/dist/runner/node/index.js +4 -0
- package/dist/runner/web/fake.js +6 -3
- package/dist/runner/web/jsdom.js +0 -4
- package/dist/test/creator.js +0 -1
- package/dist/type.d.ts +8 -0
- package/package.json +4 -4
package/dist/case/builtin.js
CHANGED
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createBuiltinCase = createBuiltinCase;
|
|
7
7
|
exports.defaultOptions = defaultOptions;
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
const core_1 = require("@rspack/core");
|
|
10
9
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
10
|
const webpack_merge_1 = require("webpack-merge");
|
|
12
11
|
const helper_1 = require("../helper");
|
|
@@ -164,27 +163,6 @@ function defaultOptions(context) {
|
|
|
164
163
|
}
|
|
165
164
|
defaultOptions = (0, webpack_merge_1.merge)(defaultOptions, caseOptions);
|
|
166
165
|
}
|
|
167
|
-
// TODO: remove builtin compatible code
|
|
168
|
-
const defineOptions = defaultOptions.builtins?.define;
|
|
169
|
-
if (defineOptions) {
|
|
170
|
-
defaultOptions.plugins.push(new core_1.rspack.DefinePlugin(defineOptions));
|
|
171
|
-
}
|
|
172
|
-
const provideOptions = defaultOptions.builtins?.provide;
|
|
173
|
-
if (provideOptions) {
|
|
174
|
-
defaultOptions.plugins.push(new core_1.rspack.ProvidePlugin(provideOptions));
|
|
175
|
-
}
|
|
176
|
-
const htmlOptions = defaultOptions.builtins?.html;
|
|
177
|
-
if (htmlOptions) {
|
|
178
|
-
if (Array.isArray(htmlOptions)) {
|
|
179
|
-
for (const item of htmlOptions) {
|
|
180
|
-
defaultOptions.plugins.push(new core_1.rspack.HtmlRspackPlugin(item));
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
defaultOptions.plugins.push(new core_1.rspack.HtmlRspackPlugin(htmlOptions));
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
delete defaultOptions.builtins;
|
|
188
166
|
if (!global.printLogger) {
|
|
189
167
|
defaultOptions.infrastructureLogging = {
|
|
190
168
|
level: "error"
|
package/dist/case/cache.js
CHANGED
package/dist/case/common.js
CHANGED
|
@@ -81,7 +81,11 @@ async function run(env, context, name, findBundle) {
|
|
|
81
81
|
const results = context.getValue(name, "modules") || [];
|
|
82
82
|
await Promise.all(results);
|
|
83
83
|
if (typeof testConfig.afterExecute === "function") {
|
|
84
|
-
|
|
84
|
+
let options = compiler.getOptions();
|
|
85
|
+
if (Array.isArray(options) && options.length === 1) {
|
|
86
|
+
options = options[0];
|
|
87
|
+
}
|
|
88
|
+
testConfig.afterExecute(options);
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
91
|
async function check(env, context, name) {
|
package/dist/case/config.js
CHANGED
package/dist/case/diagnostic.js
CHANGED
package/dist/case/error.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare class RspackStatsDiagnostics {
|
|
|
8
8
|
}
|
|
9
9
|
export type TErrorCaseConfig = {
|
|
10
10
|
description: string;
|
|
11
|
+
skip?: boolean;
|
|
11
12
|
options?: (context: ITestContext) => TCompilerOptions<ECompilerType.Rspack>;
|
|
12
13
|
compiler?: (context: ITestContext, compiler: TCompiler<ECompilerType.Rspack>) => Promise<void>;
|
|
13
14
|
build?: (context: ITestContext, compiler: TCompiler<ECompilerType.Rspack>) => Promise<void>;
|
package/dist/case/error.js
CHANGED
|
@@ -49,15 +49,29 @@ function createErrorCase(name, src, dist, testConfig) {
|
|
|
49
49
|
if (!addedSerializer) {
|
|
50
50
|
addedSerializer = true;
|
|
51
51
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
caseConfig
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
const caseConfigList = require(testConfig);
|
|
53
|
+
function createCase(caseConfig) {
|
|
54
|
+
if (caseConfig.skip) {
|
|
55
|
+
it.skip(name, () => { });
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
creator.create(name, src, dist, undefined, {
|
|
59
|
+
caseConfig,
|
|
60
|
+
description: () => caseConfig.description
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (Array.isArray(caseConfigList)) {
|
|
64
|
+
for (const caseConfig of caseConfigList) {
|
|
65
|
+
createCase(caseConfig);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
createCase(caseConfigList);
|
|
70
|
+
}
|
|
57
71
|
}
|
|
58
72
|
function options(context, custom) {
|
|
59
73
|
let options = {
|
|
60
|
-
context: node_path_1.default.resolve(
|
|
74
|
+
context: node_path_1.default.resolve(__TEST_FIXTURES_PATH__, "errors"),
|
|
61
75
|
mode: "none",
|
|
62
76
|
devtool: false,
|
|
63
77
|
optimization: {
|
|
@@ -116,6 +130,11 @@ class RspackStatsDiagnostics {
|
|
|
116
130
|
}
|
|
117
131
|
}
|
|
118
132
|
async function check(env, context, name, check) {
|
|
133
|
+
if (context.getError(name).length > 0) {
|
|
134
|
+
await check?.(new RspackStatsDiagnostics(context.getError(name), []));
|
|
135
|
+
context.clearError(name);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
119
138
|
const compiler = (0, common_1.getCompiler)(context, name);
|
|
120
139
|
const stats = compiler.getStats();
|
|
121
140
|
env.expect(typeof stats).toBe("object");
|
package/dist/case/hash.js
CHANGED
package/dist/case/hook.js
CHANGED
|
@@ -14,8 +14,8 @@ const webpack_merge_1 = __importDefault(require("webpack-merge"));
|
|
|
14
14
|
const context_1 = require("../test/context");
|
|
15
15
|
const creator_1 = require("../test/creator");
|
|
16
16
|
const common_1 = require("./common");
|
|
17
|
-
const srcDir =
|
|
18
|
-
const distDir = node_path_1.default.resolve(
|
|
17
|
+
const srcDir = __TEST_FIXTURES_PATH__;
|
|
18
|
+
const distDir = node_path_1.default.resolve(__TEST_DIST_PATH__, "hook");
|
|
19
19
|
const creator = new creator_1.BasicCaseCreator({
|
|
20
20
|
clean: true,
|
|
21
21
|
describe: true,
|
|
@@ -213,8 +213,7 @@ function defaultOptions(context, custom) {
|
|
|
213
213
|
force: false
|
|
214
214
|
}
|
|
215
215
|
},
|
|
216
|
-
inlineConst: true
|
|
217
|
-
lazyBarrel: true
|
|
216
|
+
inlineConst: true
|
|
218
217
|
}
|
|
219
218
|
};
|
|
220
219
|
if (custom) {
|
package/dist/case/hot.js
CHANGED
package/dist/case/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export { createHotIncrementalCase, createWatchIncrementalCase } from "./incremen
|
|
|
23
23
|
export type { TMultiCompilerCaseConfig } from "./multi-compiler";
|
|
24
24
|
export { createMultiCompilerCase } from "./multi-compiler";
|
|
25
25
|
export { createNativeWatcher } from "./native-watcher";
|
|
26
|
-
export { createHotNormalCase, createNormalCase } from "./normal";
|
|
26
|
+
export { createDevNormalCase, createHotNormalCase, createNormalCase, createProdNormalCase } from "./normal";
|
|
27
27
|
export { createSerialCase } from "./serial";
|
|
28
28
|
export type { TStatsAPICaseConfig } from "./stats-api";
|
|
29
29
|
export { createStatsAPICase } from "./stats-api";
|
package/dist/case/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createWatchCase = exports.createTreeShakingCase = exports.createStatsOutputCase = exports.createStatsAPICase = exports.createSerialCase = exports.createNormalCase = exports.createHotNormalCase = exports.createNativeWatcher = exports.createMultiCompilerCase = exports.createWatchIncrementalCase = exports.createHotIncrementalCase = exports.createHotStepCase = exports.createHotCase = exports.createHookCase = exports.createHashCase = exports.createExampleCase = exports.createEsmOutputCase = exports.createErrorCase = exports.createDiffCase = exports.createDiagnosticCase = exports.getRspackDefaultConfig = exports.createDefaultsCase = exports.createConfigCase = exports.createCompilerCase = exports.createCacheCase = exports.createBuiltinCase = void 0;
|
|
3
|
+
exports.createWatchCase = exports.createTreeShakingCase = exports.createStatsOutputCase = exports.createStatsAPICase = exports.createSerialCase = exports.createProdNormalCase = exports.createNormalCase = exports.createHotNormalCase = exports.createDevNormalCase = exports.createNativeWatcher = exports.createMultiCompilerCase = exports.createWatchIncrementalCase = exports.createHotIncrementalCase = exports.createHotStepCase = exports.createHotCase = exports.createHookCase = exports.createHashCase = exports.createExampleCase = exports.createEsmOutputCase = exports.createErrorCase = exports.createDiffCase = exports.createDiagnosticCase = exports.getRspackDefaultConfig = exports.createDefaultsCase = exports.createConfigCase = exports.createCompilerCase = exports.createCacheCase = exports.createBuiltinCase = void 0;
|
|
4
4
|
var builtin_1 = require("./builtin");
|
|
5
5
|
Object.defineProperty(exports, "createBuiltinCase", { enumerable: true, get: function () { return builtin_1.createBuiltinCase; } });
|
|
6
6
|
var cache_1 = require("./cache");
|
|
@@ -38,8 +38,10 @@ Object.defineProperty(exports, "createMultiCompilerCase", { enumerable: true, ge
|
|
|
38
38
|
var native_watcher_1 = require("./native-watcher");
|
|
39
39
|
Object.defineProperty(exports, "createNativeWatcher", { enumerable: true, get: function () { return native_watcher_1.createNativeWatcher; } });
|
|
40
40
|
var normal_1 = require("./normal");
|
|
41
|
+
Object.defineProperty(exports, "createDevNormalCase", { enumerable: true, get: function () { return normal_1.createDevNormalCase; } });
|
|
41
42
|
Object.defineProperty(exports, "createHotNormalCase", { enumerable: true, get: function () { return normal_1.createHotNormalCase; } });
|
|
42
43
|
Object.defineProperty(exports, "createNormalCase", { enumerable: true, get: function () { return normal_1.createNormalCase; } });
|
|
44
|
+
Object.defineProperty(exports, "createProdNormalCase", { enumerable: true, get: function () { return normal_1.createProdNormalCase; } });
|
|
43
45
|
var serial_1 = require("./serial");
|
|
44
46
|
Object.defineProperty(exports, "createSerialCase", { enumerable: true, get: function () { return serial_1.createSerialCase; } });
|
|
45
47
|
var stats_api_1 = require("./stats-api");
|
package/dist/case/normal.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export declare function createNormalCase(name: string, src: string, dist: string): void;
|
|
2
2
|
export declare function createHotNormalCase(name: string, src: string, dist: string): void;
|
|
3
|
+
export declare function createDevNormalCase(name: string, src: string, dist: string): void;
|
|
4
|
+
export declare function createProdNormalCase(name: string, src: string, dist: string): void;
|
package/dist/case/normal.js
CHANGED
|
@@ -5,14 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createNormalCase = createNormalCase;
|
|
7
7
|
exports.createHotNormalCase = createHotNormalCase;
|
|
8
|
+
exports.createDevNormalCase = createDevNormalCase;
|
|
9
|
+
exports.createProdNormalCase = createProdNormalCase;
|
|
8
10
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
11
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
12
|
const core_1 = require("@rspack/core");
|
|
11
13
|
const creator_1 = require("../test/creator");
|
|
12
14
|
const common_1 = require("./common");
|
|
13
15
|
const runner_1 = require("./runner");
|
|
14
|
-
const NORMAL_CASES_ROOT = node_path_1.default.resolve(
|
|
15
|
-
const createCaseOptions = (hot) => {
|
|
16
|
+
const NORMAL_CASES_ROOT = node_path_1.default.resolve(__TEST_PATH__, "normalCases");
|
|
17
|
+
const createCaseOptions = (hot, mode) => {
|
|
16
18
|
return {
|
|
17
19
|
clean: true,
|
|
18
20
|
describe: false,
|
|
@@ -22,7 +24,7 @@ const createCaseOptions = (hot) => {
|
|
|
22
24
|
const compiler = (0, common_1.getCompiler)(context, name);
|
|
23
25
|
let options = defaultOptions(context, {
|
|
24
26
|
plugins: hot ? [new core_1.HotModuleReplacementPlugin()] : []
|
|
25
|
-
});
|
|
27
|
+
}, mode);
|
|
26
28
|
options = await (0, common_1.config)(context, name, ["rspack.config.js", "webpack.config.js"], options);
|
|
27
29
|
overrideOptions(context, options);
|
|
28
30
|
compiler.setOptions(options);
|
|
@@ -56,6 +58,14 @@ const hotCreator = new creator_1.BasicCaseCreator(createCaseOptions(true));
|
|
|
56
58
|
function createHotNormalCase(name, src, dist) {
|
|
57
59
|
hotCreator.create(name, src, dist);
|
|
58
60
|
}
|
|
61
|
+
const devCreator = new creator_1.BasicCaseCreator(createCaseOptions(false, "development"));
|
|
62
|
+
function createDevNormalCase(name, src, dist) {
|
|
63
|
+
devCreator.create(name, src, dist);
|
|
64
|
+
}
|
|
65
|
+
const prodCreator = new creator_1.BasicCaseCreator(createCaseOptions(false, "production"));
|
|
66
|
+
function createProdNormalCase(name, src, dist) {
|
|
67
|
+
prodCreator.create(name, src, dist);
|
|
68
|
+
}
|
|
59
69
|
function findBundle(context, options) {
|
|
60
70
|
const testConfig = context.getTestConfig();
|
|
61
71
|
if (typeof testConfig.findBundle === "function") {
|
|
@@ -64,7 +74,7 @@ function findBundle(context, options) {
|
|
|
64
74
|
const filename = options.output?.filename;
|
|
65
75
|
return typeof filename === "string" ? filename : undefined;
|
|
66
76
|
}
|
|
67
|
-
function defaultOptions(context, compilerOptions) {
|
|
77
|
+
function defaultOptions(context, compilerOptions, mode) {
|
|
68
78
|
let testConfig = {};
|
|
69
79
|
const testConfigPath = node_path_1.default.join(context.getSource(), "test.config.js");
|
|
70
80
|
if (node_fs_1.default.existsSync(testConfigPath)) {
|
|
@@ -80,11 +90,12 @@ function defaultOptions(context, compilerOptions) {
|
|
|
80
90
|
entry: `./${node_path_1.default.relative(NORMAL_CASES_ROOT, context.getSource())}/`,
|
|
81
91
|
target: compilerOptions?.target || "async-node",
|
|
82
92
|
devtool: compilerOptions?.devtool,
|
|
83
|
-
mode: compilerOptions?.mode || "none",
|
|
93
|
+
mode: compilerOptions?.mode || mode || "none",
|
|
84
94
|
optimization: compilerOptions?.mode
|
|
85
95
|
? {
|
|
86
|
-
|
|
96
|
+
emitOnErrors: true,
|
|
87
97
|
minimizer: [terserForTesting],
|
|
98
|
+
minimize: false,
|
|
88
99
|
...testConfig.optimization
|
|
89
100
|
}
|
|
90
101
|
: {
|
|
@@ -98,7 +109,7 @@ function defaultOptions(context, compilerOptions) {
|
|
|
98
109
|
usedExports: true,
|
|
99
110
|
mangleExports: true,
|
|
100
111
|
// CHANGE: rspack does not support `emitOnErrors` yet.
|
|
101
|
-
|
|
112
|
+
emitOnErrors: true,
|
|
102
113
|
concatenateModules: !!testConfig?.optimization?.concatenateModules,
|
|
103
114
|
innerGraph: true,
|
|
104
115
|
// CHANGE: size is not supported yet
|
|
@@ -106,6 +117,7 @@ function defaultOptions(context, compilerOptions) {
|
|
|
106
117
|
// chunkIds: "size",
|
|
107
118
|
moduleIds: "named",
|
|
108
119
|
chunkIds: "named",
|
|
120
|
+
minimize: false,
|
|
109
121
|
minimizer: [terserForTesting],
|
|
110
122
|
...compilerOptions?.optimization
|
|
111
123
|
},
|
|
@@ -181,7 +193,6 @@ function defaultOptions(context, compilerOptions) {
|
|
|
181
193
|
asyncWebAssembly: true,
|
|
182
194
|
topLevelAwait: true,
|
|
183
195
|
inlineConst: true,
|
|
184
|
-
lazyBarrel: true,
|
|
185
196
|
// CHANGE: rspack does not support `backCompat` yet.
|
|
186
197
|
// backCompat: false,
|
|
187
198
|
// CHANGE: Rspack enables `css` by default.
|
package/dist/compare/compare.js
CHANGED
|
@@ -13,7 +13,6 @@ const helper_1 = require("../helper");
|
|
|
13
13
|
const type_1 = require("../type");
|
|
14
14
|
const format_code_1 = require("./format-code");
|
|
15
15
|
const replace_runtime_module_name_1 = require("./replace-runtime-module-name");
|
|
16
|
-
const WORKSPACE = node_path_1.default.resolve(__dirname, "../../../..");
|
|
17
16
|
function compareFile(sourceFile, distFile, compareOptions) {
|
|
18
17
|
const result = {
|
|
19
18
|
type: type_1.ECompareResultType.Same,
|
|
@@ -49,7 +48,9 @@ function compareFile(sourceFile, distFile, compareOptions) {
|
|
|
49
48
|
}
|
|
50
49
|
return res;
|
|
51
50
|
}
|
|
52
|
-
const sourceContent = (0, replace_runtime_module_name_1.replaceRuntimeModuleName)(fs_extra_1.default
|
|
51
|
+
const sourceContent = (0, replace_runtime_module_name_1.replaceRuntimeModuleName)(fs_extra_1.default
|
|
52
|
+
.readFileSync(sourceFile, "utf-8")
|
|
53
|
+
.replaceAll(__ROOT_PATH__, "__WORKSPACE__"));
|
|
53
54
|
const sourceModules = (0, helper_1.parseModules)(sourceContent, {
|
|
54
55
|
bootstrap: compareOptions.bootstrap,
|
|
55
56
|
renameModule: compareOptions.renameModule
|
|
@@ -66,7 +67,9 @@ function compareFile(sourceFile, distFile, compareOptions) {
|
|
|
66
67
|
distModules = JSON.parse(fs_extra_1.default.readFileSync(compareOptions.snapshot, "utf-8"));
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
|
-
const distContent = (0, replace_runtime_module_name_1.replaceRuntimeModuleName)(fs_extra_1.default
|
|
70
|
+
const distContent = (0, replace_runtime_module_name_1.replaceRuntimeModuleName)(fs_extra_1.default
|
|
71
|
+
.readFileSync(distFile, "utf-8")
|
|
72
|
+
.replaceAll(__ROOT_PATH__, "__WORKSPACE__"));
|
|
70
73
|
distModules = (0, helper_1.parseModules)(distContent, {
|
|
71
74
|
bootstrap: compareOptions.bootstrap,
|
|
72
75
|
renameModule: compareOptions.renameModule
|
package/dist/helper/directory.js
CHANGED
|
@@ -31,7 +31,7 @@ function describeByWalk(testFile, createCase, options = {}) {
|
|
|
31
31
|
.filter(folder => {
|
|
32
32
|
if (options.exclude) {
|
|
33
33
|
if (options.exclude.some(exclude => {
|
|
34
|
-
return exclude.test(folder);
|
|
34
|
+
return exclude.test(node_path_1.default.join(dirname, folder).replace(/\\/g, "/"));
|
|
35
35
|
})) {
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.normalizePlaceholder = void 0;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
4
|
const path_serializer_1 = require("path-serializer");
|
|
9
5
|
// 1. escapeEOL \r\n -> \n
|
|
10
6
|
// 2. replace <RSPACK_ROOT> etc
|
|
@@ -13,14 +9,18 @@ const placeholderSerializer = (0, path_serializer_1.createSnapshotSerializer)({
|
|
|
13
9
|
root: __dirname.includes("node_modules")
|
|
14
10
|
? // Use `process.cwd()` when using outside Rspack
|
|
15
11
|
process.cwd()
|
|
16
|
-
:
|
|
12
|
+
: __ROOT_PATH__,
|
|
17
13
|
replace: [
|
|
18
14
|
{
|
|
19
|
-
match:
|
|
15
|
+
match: __RSPACK_TEST_TOOLS_PATH__,
|
|
20
16
|
mark: "test_tools_root"
|
|
21
17
|
},
|
|
22
18
|
{
|
|
23
|
-
match:
|
|
19
|
+
match: __TEST_PATH__,
|
|
20
|
+
mark: "test_root"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
match: __RSPACK_PATH__,
|
|
24
24
|
mark: "rspack_root"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
@@ -71,7 +71,12 @@ class HotUpdatePlugin {
|
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
this.initialized = true;
|
|
74
|
-
|
|
74
|
+
try {
|
|
75
|
+
await promises_1.default.rmdir(this.tempDir, { recursive: true });
|
|
76
|
+
}
|
|
77
|
+
catch (_e) {
|
|
78
|
+
// empty
|
|
79
|
+
}
|
|
75
80
|
await promises_1.default.cp(this.projectDir, this.tempDir, { recursive: true });
|
|
76
81
|
await loopFile(this.tempDir, (filePath, content) => {
|
|
77
82
|
const contents = content.split(/---+\r?\n/g);
|
|
@@ -42,6 +42,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
42
42
|
const node_url_1 = require("node:url");
|
|
43
43
|
const node_vm_1 = __importStar(require("node:vm"));
|
|
44
44
|
const asModule_1 = __importDefault(require("../../helper/legacy/asModule"));
|
|
45
|
+
const createFakeWorker_1 = __importDefault(require("../../helper/legacy/createFakeWorker"));
|
|
45
46
|
const urlToRelativePath_1 = __importDefault(require("../../helper/legacy/urlToRelativePath"));
|
|
46
47
|
const type_1 = require("../../type");
|
|
47
48
|
const isRelativePath = (p) => /^\.\.?\//.test(p);
|
|
@@ -165,6 +166,9 @@ class NodeRunner {
|
|
|
165
166
|
setImmediate,
|
|
166
167
|
__MODE__: this._options.compilerOptions.mode,
|
|
167
168
|
__SNAPSHOT__: node_path_1.default.join(this._options.source, "__snapshot__"),
|
|
169
|
+
Worker: (0, createFakeWorker_1.default)(this._options.env, {
|
|
170
|
+
outputDirectory: this._options.dist
|
|
171
|
+
}),
|
|
168
172
|
...this._options.env
|
|
169
173
|
};
|
|
170
174
|
return baseModuleScope;
|
package/dist/runner/web/fake.js
CHANGED
|
@@ -102,9 +102,6 @@ class FakeDocumentWebRunner extends node_1.NodeRunner {
|
|
|
102
102
|
this.requirers.get("entry")(this._options.dist, (0, urlToRelativePath_1.default)(url));
|
|
103
103
|
};
|
|
104
104
|
globalContext.document = this.document;
|
|
105
|
-
globalContext.Worker = (0, createFakeWorker_1.default)(this._options.env, {
|
|
106
|
-
outputDirectory: this._options.dist
|
|
107
|
-
});
|
|
108
105
|
globalContext.EventSource = EventSourceForNode_1.default;
|
|
109
106
|
globalContext.location = {
|
|
110
107
|
href: "https://test.cases/path/index.html",
|
|
@@ -169,6 +166,12 @@ class FakeDocumentWebRunner extends node_1.NodeRunner {
|
|
|
169
166
|
if (!file) {
|
|
170
167
|
return this.requirers.get("miss")(currentDirectory, modulePath);
|
|
171
168
|
}
|
|
169
|
+
if (file.content.includes("__STATS_I__")) {
|
|
170
|
+
const statsIndex = this._options.stats?.()?.__index__;
|
|
171
|
+
if (typeof statsIndex === "number") {
|
|
172
|
+
esmContext.__STATS_I__ = statsIndex;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
172
175
|
let esm = esmCache.get(file.path);
|
|
173
176
|
if (!esm) {
|
|
174
177
|
esm = new node_vm_1.SourceTextModule(file.content, {
|
package/dist/runner/web/jsdom.js
CHANGED
|
@@ -8,7 +8,6 @@ const node_fs_1 = __importDefault(require("node:fs"));
|
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const jsdom_1 = require("jsdom");
|
|
10
10
|
const helper_1 = require("../../helper");
|
|
11
|
-
const createFakeWorker_1 = __importDefault(require("../../helper/legacy/createFakeWorker"));
|
|
12
11
|
const EventSourceForNode_1 = __importDefault(require("../../helper/legacy/EventSourceForNode"));
|
|
13
12
|
const urlToRelativePath_1 = __importDefault(require("../../helper/legacy/urlToRelativePath"));
|
|
14
13
|
const node_1 = require("../node");
|
|
@@ -110,9 +109,6 @@ class JSDOMWebRunner extends node_1.NodeRunner {
|
|
|
110
109
|
createBaseModuleScope() {
|
|
111
110
|
const moduleScope = super.createBaseModuleScope();
|
|
112
111
|
moduleScope.EventSource = EventSourceForNode_1.default;
|
|
113
|
-
moduleScope.Worker = (0, createFakeWorker_1.default)(this._options.env, {
|
|
114
|
-
outputDirectory: this._options.dist
|
|
115
|
-
});
|
|
116
112
|
const urlToPath = (url) => {
|
|
117
113
|
return node_path_1.default.resolve(this._webOptions.dist, `./${url.startsWith("https://test.cases/path/") ? url.slice(24) : url}`);
|
|
118
114
|
};
|
package/dist/test/creator.js
CHANGED
package/dist/type.d.ts
CHANGED
|
@@ -201,3 +201,11 @@ export type TTestRunnerCreator = {
|
|
|
201
201
|
key: (context: ITestContext, name: string, file: string) => string;
|
|
202
202
|
runner: (context: ITestContext, name: string, file: string, env: ITestEnv) => ITestRunner;
|
|
203
203
|
};
|
|
204
|
+
declare global {
|
|
205
|
+
var __TEST_PATH__: string;
|
|
206
|
+
var __TEST_FIXTURES_PATH__: string;
|
|
207
|
+
var __TEST_DIST_PATH__: string;
|
|
208
|
+
var __ROOT_PATH__: string;
|
|
209
|
+
var __RSPACK_PATH__: string;
|
|
210
|
+
var __RSPACK_TEST_TOOLS_PATH__: string;
|
|
211
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack-canary/test-tools",
|
|
3
|
-
"version": "1.5.9-canary-
|
|
3
|
+
"version": "1.5.9-canary-a915dabc-20251013174148",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Test tools for rspack",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"wast-loader": "^1.14.1",
|
|
101
101
|
"worker-rspack-loader": "^3.1.2",
|
|
102
102
|
"exports-loader": "^5.0.0",
|
|
103
|
-
"@rspack/cli": "npm:@rspack-canary/cli@1.5.9-canary-
|
|
104
|
-
"@rspack/core": "npm:@rspack-canary/core@1.5.9-canary-
|
|
105
|
-
"@rspack/test-tools": "npm:@rspack-canary/test-tools@1.5.9-canary-
|
|
103
|
+
"@rspack/cli": "npm:@rspack-canary/cli@1.5.9-canary-a915dabc-20251013174148",
|
|
104
|
+
"@rspack/core": "npm:@rspack-canary/core@1.5.9-canary-a915dabc-20251013174148",
|
|
105
|
+
"@rspack/test-tools": "npm:@rspack-canary/test-tools@1.5.9-canary-a915dabc-20251013174148",
|
|
106
106
|
"@rspack/binding-testing": "1.4.1"
|
|
107
107
|
},
|
|
108
108
|
"peerDependencies": {
|