@rspack-debug/test-tools 1.4.9 → 1.6.2
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 -1
- package/dist/case/builtin.d.ts +3 -0
- package/dist/case/builtin.js +152 -14
- package/dist/case/cache.d.ts +2 -2
- package/dist/case/cache.js +214 -12
- package/dist/case/common.d.ts +11 -0
- package/dist/case/common.js +249 -0
- package/dist/case/compiler.d.ts +17 -4
- package/dist/case/compiler.js +149 -12
- package/dist/case/config.d.ts +7 -2
- package/dist/case/config.js +106 -18
- package/dist/case/defaults.d.ts +13 -4
- package/dist/case/defaults.js +73 -18
- package/dist/case/diagnostic.d.ts +6 -0
- package/dist/case/diagnostic.js +121 -14
- package/dist/case/error.d.ts +15 -4
- package/dist/case/error.js +137 -12
- package/dist/case/esm-output.d.ts +1 -0
- package/dist/case/esm-output.js +117 -0
- package/dist/case/example.d.ts +1 -0
- package/dist/case/example.js +57 -0
- package/dist/case/hash.d.ts +2 -2
- package/dist/case/hash.js +72 -9
- package/dist/case/hook.d.ts +36 -4
- package/dist/case/hook.js +209 -20
- package/dist/case/hot-step.d.ts +2 -2
- package/dist/case/hot-step.js +309 -13
- package/dist/case/hot.d.ts +11 -2
- package/dist/case/hot.js +217 -12
- package/dist/case/incremental.d.ts +2 -2
- package/dist/case/incremental.js +24 -45
- package/dist/case/index.d.ts +31 -20
- package/dist/case/index.js +50 -34
- package/dist/case/multi-compiler.d.ts +19 -0
- package/dist/case/multi-compiler.js +97 -0
- package/dist/case/{nativeWatcher.js → native-watcher.js} +12 -25
- package/dist/case/normal.d.ts +3 -0
- package/dist/case/normal.js +202 -18
- package/dist/case/runner.d.ts +19 -0
- package/dist/case/runner.js +113 -0
- package/dist/case/serial.d.ts +2 -2
- package/dist/case/serial.js +10 -14
- package/dist/case/stats-api.d.ts +8 -3
- package/dist/case/stats-api.js +69 -10
- package/dist/case/stats-output.d.ts +11 -0
- package/dist/case/stats-output.js +199 -8
- package/dist/case/treeshaking.js +34 -7
- package/dist/case/watch.d.ts +27 -0
- package/dist/case/watch.js +318 -22
- package/dist/compiler.d.ts +16 -16
- package/dist/compiler.js +120 -15
- package/dist/helper/directory.d.ts +1 -1
- package/dist/helper/directory.js +2 -2
- 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 +1 -2
- package/dist/helper/expect/to-match-file-snapshot.js +3 -3
- package/dist/helper/hot-update/loader.d.ts +2 -1
- package/dist/helper/hot-update/loader.js +5 -30
- package/dist/helper/hot-update/plugin.d.ts +1 -1
- package/dist/helper/hot-update/plugin.js +15 -14
- package/dist/helper/index.d.ts +2 -1
- package/dist/helper/index.js +2 -1
- package/dist/helper/is.d.ts +2 -0
- package/dist/helper/is.js +15 -0
- package/dist/helper/legacy/LogTestPlugin.d.ts +6 -0
- package/dist/helper/legacy/LogTestPlugin.js +35 -0
- package/dist/helper/legacy/asModule.js +0 -2
- package/dist/helper/legacy/checkArrayExpectation.d.ts +1 -1
- package/dist/helper/legacy/checkArrayExpectation.js +8 -8
- package/dist/helper/legacy/createFakeWorker.d.ts +2 -2
- package/dist/helper/legacy/createFakeWorker.js +44 -20
- package/dist/helper/legacy/createLazyTestEnv.d.ts +3 -2
- package/dist/helper/legacy/createLazyTestEnv.js +3 -3
- package/dist/helper/legacy/deprecationTracking.d.ts +1 -0
- package/dist/helper/legacy/deprecationTracking.js +41 -0
- package/dist/helper/legacy/expectSource.d.ts +10 -0
- package/dist/helper/legacy/expectSource.js +23 -0
- package/dist/helper/legacy/findOutputFiles.d.ts +6 -0
- package/dist/helper/legacy/findOutputFiles.js +14 -0
- package/dist/helper/legacy/regexEscape.d.ts +2 -0
- package/dist/helper/legacy/regexEscape.js +5 -0
- package/dist/helper/legacy/supportDefaultAssignment.js +13 -0
- package/dist/helper/legacy/supportsTextDecoder.d.ts +2 -0
- package/dist/helper/legacy/supportsTextDecoder.js +9 -0
- package/dist/helper/legacy/supportsUsing.d.ts +2 -0
- package/dist/helper/legacy/supportsUsing.js +26 -0
- package/dist/helper/legacy/urlToRelativePath.js +5 -2
- package/dist/helper/read-config-file.d.ts +3 -2
- package/dist/helper/read-config-file.js +12 -2
- package/dist/helper/setup-env.js +15 -2
- package/dist/helper/setup-expect.js +2 -2
- package/dist/helper/setup-wasm.js +2 -2
- package/dist/helper/stringify-config.d.ts +2 -0
- package/dist/helper/stringify-config.js +43 -0
- package/dist/helper/util/checkStats.d.ts +0 -1
- package/dist/helper/util/checkStats.js +0 -18
- package/dist/helper/util/expectWarningFactory.js +2 -4
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -4
- package/dist/plugin/index.d.ts +0 -3
- package/dist/plugin/index.js +0 -3
- package/dist/plugin/lazy-compilation-test-plugin.js +4 -4
- package/dist/runner/index.d.ts +2 -9
- package/dist/runner/index.js +2 -9
- package/dist/runner/node/index.d.ts +41 -0
- package/dist/runner/node/index.js +450 -0
- package/dist/runner/web/index.d.ts +30 -0
- package/dist/runner/web/index.js +343 -0
- package/dist/test/context.d.ts +15 -18
- package/dist/test/context.js +52 -57
- package/dist/test/creator.d.ts +20 -19
- package/dist/test/creator.js +69 -57
- package/dist/test/debug.d.ts +15 -0
- package/dist/test/debug.js +205 -0
- package/dist/test/tester.d.ts +1 -0
- package/dist/test/tester.js +44 -6
- package/dist/type.d.ts +94 -64
- package/dist/type.js +8 -12
- package/package.json +23 -62
- package/rstest.d.ts +24 -0
- package/dist/case/diff.d.ts +0 -3
- package/dist/case/diff.js +0 -126
- package/dist/compare/comparator.d.ts +0 -17
- package/dist/compare/comparator.js +0 -52
- package/dist/compare/compare.d.ts +0 -17
- package/dist/compare/compare.js +0 -175
- package/dist/compare/format-code.d.ts +0 -16
- package/dist/compare/format-code.js +0 -239
- package/dist/compare/index.d.ts +0 -5
- package/dist/compare/index.js +0 -21
- package/dist/compare/replace-module-argument.d.ts +0 -1
- package/dist/compare/replace-module-argument.js +0 -8
- package/dist/compare/replace-runtime-module-name.d.ts +0 -1
- package/dist/compare/replace-runtime-module-name.js +0 -71
- package/dist/helper/legacy/FakeDocument.d.ts +0 -54
- package/dist/helper/legacy/FakeDocument.js +0 -278
- package/dist/helper/legacy/createLogger.d.ts +0 -23
- package/dist/helper/legacy/createLogger.js +0 -20
- package/dist/helper/legacy/supportsImportFn.d.ts +0 -1
- package/dist/helper/legacy/supportsImportFn.js +0 -15
- package/dist/helper/legacy/supportsWorker.js +0 -17
- package/dist/helper/legacy/walkCssTokens.d.ts +0 -40
- package/dist/helper/legacy/walkCssTokens.js +0 -761
- package/dist/helper/legacy/warmup-webpack.d.ts +0 -1
- package/dist/helper/legacy/warmup-webpack.js +0 -26
- package/dist/helper/loaders/hot-update.d.ts +0 -1
- package/dist/helper/loaders/hot-update.js +0 -40
- package/dist/helper/plugins/hot-update.d.ts +0 -7
- package/dist/helper/plugins/hot-update.js +0 -40
- package/dist/helper/plugins/index.d.ts +0 -1
- package/dist/helper/plugins/index.js +0 -17
- package/dist/helper/util/currentWatchStep.d.ts +0 -1
- package/dist/helper/util/currentWatchStep.js +0 -2
- package/dist/helper/util/identifier.d.ts +0 -76
- package/dist/helper/util/identifier.js +0 -339
- package/dist/helper/util/replaceMitteDiagnostic.d.ts +0 -2
- package/dist/helper/util/replaceMitteDiagnostic.js +0 -17
- package/dist/plugin/rspack-diff-config-plugin.d.ts +0 -7
- package/dist/plugin/rspack-diff-config-plugin.js +0 -42
- package/dist/plugin/webpack-diff-config-plugin.d.ts +0 -7
- package/dist/plugin/webpack-diff-config-plugin.js +0 -41
- package/dist/plugin/webpack-module-placeholder-plugin.d.ts +0 -3
- package/dist/plugin/webpack-module-placeholder-plugin.js +0 -106
- package/dist/processor/basic.d.ts +0 -24
- package/dist/processor/basic.js +0 -146
- package/dist/processor/builtin.d.ts +0 -9
- package/dist/processor/builtin.js +0 -171
- package/dist/processor/cache.d.ts +0 -20
- package/dist/processor/cache.js +0 -127
- package/dist/processor/config.d.ts +0 -11
- package/dist/processor/config.js +0 -81
- package/dist/processor/defaults.d.ts +0 -30
- package/dist/processor/defaults.js +0 -72
- package/dist/processor/diagnostic.d.ts +0 -15
- package/dist/processor/diagnostic.js +0 -102
- package/dist/processor/diff.d.ts +0 -30
- package/dist/processor/diff.js +0 -140
- package/dist/processor/error.d.ts +0 -23
- package/dist/processor/error.js +0 -95
- package/dist/processor/hash.d.ts +0 -10
- package/dist/processor/hash.js +0 -63
- package/dist/processor/hook.d.ts +0 -44
- package/dist/processor/hook.js +0 -204
- package/dist/processor/hot-incremental.d.ts +0 -14
- package/dist/processor/hot-incremental.js +0 -43
- package/dist/processor/hot-step.d.ts +0 -18
- package/dist/processor/hot-step.js +0 -304
- package/dist/processor/hot.d.ts +0 -17
- package/dist/processor/hot.js +0 -140
- package/dist/processor/index.d.ts +0 -20
- package/dist/processor/index.js +0 -36
- package/dist/processor/multi.d.ts +0 -17
- package/dist/processor/multi.js +0 -73
- package/dist/processor/normal.d.ts +0 -12
- package/dist/processor/normal.js +0 -150
- package/dist/processor/simple.d.ts +0 -23
- package/dist/processor/simple.js +0 -49
- package/dist/processor/snapshot.d.ts +0 -12
- package/dist/processor/snapshot.js +0 -66
- package/dist/processor/stats-api.d.ts +0 -18
- package/dist/processor/stats-api.js +0 -48
- package/dist/processor/stats.d.ts +0 -18
- package/dist/processor/stats.js +0 -206
- package/dist/processor/treeshaking.d.ts +0 -10
- package/dist/processor/treeshaking.js +0 -33
- package/dist/processor/watch.d.ts +0 -30
- package/dist/processor/watch.js +0 -245
- package/dist/reporter/diff-html.d.ts +0 -15
- package/dist/reporter/diff-html.js +0 -69
- package/dist/reporter/diff-stats.d.ts +0 -24
- package/dist/reporter/diff-stats.js +0 -131
- package/dist/reporter/index.d.ts +0 -2
- package/dist/reporter/index.js +0 -18
- package/dist/runner/basic.d.ts +0 -10
- package/dist/runner/basic.js +0 -63
- package/dist/runner/cache.d.ts +0 -5
- package/dist/runner/cache.js +0 -90
- package/dist/runner/hot-step.d.ts +0 -5
- package/dist/runner/hot-step.js +0 -87
- package/dist/runner/hot.d.ts +0 -5
- package/dist/runner/hot.js +0 -83
- package/dist/runner/multiple.d.ts +0 -11
- package/dist/runner/multiple.js +0 -38
- package/dist/runner/normal.d.ts +0 -5
- package/dist/runner/normal.js +0 -20
- package/dist/runner/runner/basic.d.ts +0 -30
- package/dist/runner/runner/basic.js +0 -107
- package/dist/runner/runner/cjs.d.ts +0 -14
- package/dist/runner/runner/cjs.js +0 -151
- package/dist/runner/runner/esm.d.ts +0 -7
- package/dist/runner/runner/esm.js +0 -125
- package/dist/runner/runner/index.d.ts +0 -8
- package/dist/runner/runner/index.js +0 -24
- package/dist/runner/runner/normal.d.ts +0 -9
- package/dist/runner/runner/normal.js +0 -23
- package/dist/runner/runner/watch.d.ts +0 -16
- package/dist/runner/runner/watch.js +0 -27
- package/dist/runner/runner/web/fake.d.ts +0 -18
- package/dist/runner/runner/web/fake.js +0 -143
- package/dist/runner/runner/web/jsdom.d.ts +0 -26
- package/dist/runner/runner/web/jsdom.js +0 -219
- package/dist/runner/runner/web.d.ts +0 -15
- package/dist/runner/runner/web.js +0 -32
- package/dist/runner/type.d.ts +0 -42
- package/dist/runner/type.js +0 -9
- package/dist/runner/watch.d.ts +0 -7
- package/dist/runner/watch.js +0 -60
- package/dist/test/simple.d.ts +0 -5
- package/dist/test/simple.js +0 -43
- package/jest.d.ts +0 -25
- package/template/diff.bundle.css +0 -1
- package/template/diff.bundle.js +0 -144
- package/template/diff.html +0 -14
- package/template/editor.worker.js +0 -1
- /package/dist/case/{nativeWatcher.d.ts → native-watcher.d.ts} +0 -0
- /package/dist/helper/legacy/{supportsWorker.d.ts → supportDefaultAssignment.d.ts} +0 -0
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// @ts-nocheck
|
|
3
|
-
|
|
2
|
+
"use strict";
|
|
3
|
+
const path = require("path");
|
|
4
4
|
module.exports = (env, { outputDirectory }) => class Worker {
|
|
5
|
-
constructor(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
constructor(resource, options = {}) {
|
|
6
|
+
const isFileURL = /^file:/i.test(resource);
|
|
7
|
+
const isBlobURL = /^blob:/i.test(resource);
|
|
8
|
+
if (!isFileURL && !isBlobURL) {
|
|
9
|
+
env.expect(resource.origin).toBe("https://test.cases");
|
|
10
|
+
env.expect(resource.pathname.startsWith("/path/")).toBe(true);
|
|
11
|
+
}
|
|
12
|
+
this.url = resource;
|
|
13
|
+
const file = isFileURL
|
|
14
|
+
? resource
|
|
15
|
+
: path.resolve(outputDirectory, isBlobURL
|
|
16
|
+
? options.originalURL.pathname.slice(6)
|
|
17
|
+
: resource.pathname.slice(6));
|
|
11
18
|
const workerBootstrap = `
|
|
12
19
|
const { parentPort } = require("worker_threads");
|
|
13
|
-
const { URL } = require("url");
|
|
20
|
+
const { URL, fileURLToPath } = require("url");
|
|
14
21
|
const path = require("path");
|
|
15
22
|
const fs = require("fs");
|
|
16
23
|
global.self = global;
|
|
17
24
|
self.URL = URL;
|
|
18
|
-
self.location = new URL(${JSON.stringify(
|
|
25
|
+
self.location = new URL(${JSON.stringify(isBlobURL
|
|
26
|
+
? resource.toString().replace("nodedata:", "https://test.cases/path/")
|
|
27
|
+
: resource.toString())});
|
|
19
28
|
const urlToPath = url => {
|
|
20
|
-
|
|
29
|
+
if (/^file:/i.test(url)) return fileURLToPath(url);
|
|
30
|
+
if (url.startsWith("https://test.cases/path/")) url = url.slice(24);
|
|
21
31
|
return path.resolve(${JSON.stringify(outputDirectory)}, \`./\${url}\`);
|
|
22
32
|
};
|
|
23
33
|
self.importScripts = url => {
|
|
24
34
|
${options.type === "module"
|
|
25
|
-
?
|
|
35
|
+
? 'throw new Error("importScripts is not supported in module workers")'
|
|
26
36
|
: "require(urlToPath(url))"};
|
|
27
37
|
};
|
|
28
38
|
self.fetch = async url => {
|
|
@@ -33,8 +43,10 @@ self.fetch = async url => {
|
|
|
33
43
|
)
|
|
34
44
|
);
|
|
35
45
|
return {
|
|
46
|
+
headers: { get(name) { } },
|
|
36
47
|
status: 200,
|
|
37
48
|
ok: true,
|
|
49
|
+
arrayBuffer() { return buffer; },
|
|
38
50
|
json: async () => JSON.parse(buffer.toString("utf-8"))
|
|
39
51
|
};
|
|
40
52
|
} catch(err) {
|
|
@@ -47,25 +59,37 @@ self.fetch = async url => {
|
|
|
47
59
|
throw err;
|
|
48
60
|
}
|
|
49
61
|
};
|
|
50
|
-
|
|
51
|
-
if(self.onmessage) self.onmessage({
|
|
52
|
-
data
|
|
53
|
-
});
|
|
54
|
-
});
|
|
62
|
+
|
|
55
63
|
self.postMessage = data => {
|
|
56
64
|
parentPort.postMessage(data);
|
|
57
65
|
};
|
|
58
|
-
|
|
66
|
+
if (${options.type === "module"}) {
|
|
67
|
+
import(${JSON.stringify(file)}).then(() => {
|
|
68
|
+
parentPort.on("message", data => {
|
|
69
|
+
if(self.onmessage) self.onmessage({
|
|
70
|
+
data
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
parentPort.on("message", data => {
|
|
76
|
+
if(self.onmessage) self.onmessage({
|
|
77
|
+
data
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
require(${JSON.stringify(file)});
|
|
81
|
+
}
|
|
59
82
|
`;
|
|
60
|
-
this.worker = new (require("
|
|
83
|
+
this.worker = new (require("worker_threads").Worker)(workerBootstrap, {
|
|
61
84
|
eval: true
|
|
62
85
|
});
|
|
63
86
|
this._onmessage = undefined;
|
|
64
87
|
}
|
|
88
|
+
// eslint-disable-next-line accessor-pairs
|
|
65
89
|
set onmessage(value) {
|
|
66
90
|
if (this._onmessage)
|
|
67
91
|
this.worker.off("message", this._onmessage);
|
|
68
|
-
this.worker.on("message", (this._onmessage = data => {
|
|
92
|
+
this.worker.on("message", (this._onmessage = (data) => {
|
|
69
93
|
value({
|
|
70
94
|
data
|
|
71
95
|
});
|
|
@@ -4,7 +4,8 @@ declare function _exports(globalTimeout?: number, nameSuffix?: string): {
|
|
|
4
4
|
it(...args: any[]): void;
|
|
5
5
|
beforeEach(...args: any[]): void;
|
|
6
6
|
afterEach(...args: any[]): void;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/** @type {import('@rstest/core').Expect} */
|
|
8
|
+
expect: import("@rstest/core").Expect;
|
|
9
|
+
rstest: import("@rstest/core", { with: { "resolution-mode": "import" } }).RstestUtilities;
|
|
9
10
|
};
|
|
10
11
|
export = _exports;
|
|
@@ -39,11 +39,10 @@ module.exports = (globalTimeout = 2000, nameSuffix = "") => {
|
|
|
39
39
|
it("should run the exported tests", () => {
|
|
40
40
|
runTests++;
|
|
41
41
|
});
|
|
42
|
-
afterAll(
|
|
42
|
+
afterAll(() => {
|
|
43
43
|
for (const dispose of disposables) {
|
|
44
44
|
dispose();
|
|
45
45
|
}
|
|
46
|
-
done();
|
|
47
46
|
});
|
|
48
47
|
currentDescribeBlock = state.currentDescribeBlock;
|
|
49
48
|
currentlyRunningTest = state.currentlyRunningTest;
|
|
@@ -110,7 +109,8 @@ module.exports = (globalTimeout = 2000, nameSuffix = "") => {
|
|
|
110
109
|
fixAsyncError(currentDescribeBlock.hooks[currentDescribeBlock.hooks.length - 1]);
|
|
111
110
|
});
|
|
112
111
|
},
|
|
112
|
+
/** @type {import('@rstest/core').Expect} */
|
|
113
113
|
expect,
|
|
114
|
-
|
|
114
|
+
rstest,
|
|
115
115
|
};
|
|
116
116
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function start(handler: any): () => any[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/*
|
|
3
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
4
|
+
Author Tobias Koppers @sokra
|
|
5
|
+
*/
|
|
6
|
+
"use strict";
|
|
7
|
+
const util = require("util");
|
|
8
|
+
let interception = undefined;
|
|
9
|
+
const originalDeprecate = util.deprecate;
|
|
10
|
+
util.deprecate = (fn, message, code) => {
|
|
11
|
+
const original = originalDeprecate(fn, message, code);
|
|
12
|
+
return function (...args) {
|
|
13
|
+
if (interception) {
|
|
14
|
+
interception.set(`${code}: ${message}`, {
|
|
15
|
+
code,
|
|
16
|
+
message,
|
|
17
|
+
stack: new Error(message).stack
|
|
18
|
+
});
|
|
19
|
+
return fn.apply(this, args);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return original.apply(this, args);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.start = handler => {
|
|
27
|
+
interception = new Map();
|
|
28
|
+
return () => {
|
|
29
|
+
const map = interception;
|
|
30
|
+
interception = undefined;
|
|
31
|
+
return Array.from(map || [])
|
|
32
|
+
.sort(([a], [b]) => {
|
|
33
|
+
if (a < b)
|
|
34
|
+
return -1;
|
|
35
|
+
if (a > b)
|
|
36
|
+
return 1;
|
|
37
|
+
return 0;
|
|
38
|
+
})
|
|
39
|
+
.map(([key, data]) => data);
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} source value
|
|
3
|
+
* @param {string} str string for searching
|
|
4
|
+
*/
|
|
5
|
+
export function expectSourceToContain(source: string, str: string): void;
|
|
6
|
+
/**
|
|
7
|
+
* @param {string} source value
|
|
8
|
+
* @param {RegExp} regexStr regexp
|
|
9
|
+
*/
|
|
10
|
+
export function expectSourceToMatch(source: string, regexStr: RegExp): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
"use strict";
|
|
3
|
+
const regexEscape = require("./regexEscape");
|
|
4
|
+
// These expect* methods are necessary because 'source' contains the code for this test file, which will always contain the string
|
|
5
|
+
// being tested for, so we have to use the "DO NOT MATCH BELOW..." technique to exclude the actual testing code from the test.
|
|
6
|
+
// Place your jest 'expect' calls below a line containing the DO NOT MATCH BELOW... string constructed below. See other tests for examples.
|
|
7
|
+
// Break up the match string so we don't match it in these expect* functions either.
|
|
8
|
+
const doNotMatch = ["DO", "NOT", "MATCH", "BELOW", "THIS", "LINE"].join(" ");
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} source value
|
|
11
|
+
* @param {string} str string for searching
|
|
12
|
+
*/
|
|
13
|
+
function expectSourceToContain(source, str) {
|
|
14
|
+
expect(source).toMatch(new RegExp(`${regexEscape(str)}.*${doNotMatch}`, "s"));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} source value
|
|
18
|
+
* @param {RegExp} regexStr regexp
|
|
19
|
+
*/
|
|
20
|
+
function expectSourceToMatch(source, regexStr) {
|
|
21
|
+
expect(source).toMatch(new RegExp(`${regexStr}.*${doNotMatch}`, "s"));
|
|
22
|
+
}
|
|
23
|
+
module.exports = { expectSourceToContain, expectSourceToMatch };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
"use strict";
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
/**
|
|
6
|
+
* @param {{output: {path: string}}} options options
|
|
7
|
+
* @param {RegExp} regexp regexp
|
|
8
|
+
* @param {string=} subpath path in output directory
|
|
9
|
+
* @returns {string[]} files
|
|
10
|
+
*/
|
|
11
|
+
module.exports = function findOutputFiles(options, regexp, subpath) {
|
|
12
|
+
const files = fs.readdirSync(subpath ? path.join(options.output.path, subpath) : options.output.path);
|
|
13
|
+
return files.filter(file => regexp.test(file));
|
|
14
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
module.exports = function supportDefaultAssignment() {
|
|
4
|
+
try {
|
|
5
|
+
// eslint-disable-next-line no-unused-vars
|
|
6
|
+
var E = eval("class E { toString() { return 'default' } }");
|
|
7
|
+
var f1 = eval("(function f1({a, b = E}) {return new b().toString();})");
|
|
8
|
+
return f1({ a: "test" }) === "default";
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
"use strict";
|
|
3
|
+
module.exports = function supportsUsing() {
|
|
4
|
+
try {
|
|
5
|
+
const f = eval(`(function f() {
|
|
6
|
+
let disposed = false;
|
|
7
|
+
|
|
8
|
+
{
|
|
9
|
+
const getResource = () => {
|
|
10
|
+
return {
|
|
11
|
+
[Symbol.dispose]: () => {
|
|
12
|
+
disposed = true;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
using resource = getResource();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return disposed;
|
|
20
|
+
})`);
|
|
21
|
+
return f() === true;
|
|
22
|
+
}
|
|
23
|
+
catch (_err) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// @ts-nocheck
|
|
3
|
+
const URL = require("url").URL;
|
|
3
4
|
module.exports = function urlToRelativePath(url) {
|
|
4
|
-
if (url.startsWith("https://
|
|
5
|
-
|
|
5
|
+
if (url.startsWith("https://") || url.startsWith("file://")) {
|
|
6
|
+
const urlObj = new URL(url);
|
|
7
|
+
return `./${urlObj.pathname.split("/").pop()}`;
|
|
8
|
+
}
|
|
6
9
|
return `./${url}`;
|
|
7
10
|
};
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { RspackOptions } from "@rspack/core";
|
|
2
|
+
import type { ITestContext } from "../type";
|
|
3
|
+
export declare function readConfigFile(files: string[], context: ITestContext, prevOption?: RspackOptions, functionApply?: (config: (RspackOptions | ((...args: unknown[]) => RspackOptions))[]) => RspackOptions[]): RspackOptions[];
|
|
@@ -5,9 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.readConfigFile = readConfigFile;
|
|
7
7
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
-
|
|
8
|
+
const debug_1 = require("../test/debug");
|
|
9
|
+
function readConfigFile(files, context, prevOption, functionApply) {
|
|
9
10
|
const existsFile = files.find(i => fs_extra_1.default.existsSync(i));
|
|
10
|
-
|
|
11
|
+
let fileConfig = existsFile ? require(existsFile) : {};
|
|
12
|
+
if (typeof fileConfig === "function") {
|
|
13
|
+
fileConfig = fileConfig({ config: prevOption }, { testPath: context.getDist(), tempPath: context.getTemp() });
|
|
14
|
+
}
|
|
11
15
|
const configArr = Array.isArray(fileConfig) ? fileConfig : [fileConfig];
|
|
16
|
+
if (existsFile) {
|
|
17
|
+
context.setValue(debug_1.DEBUG_SCOPES.CompilerOptionsReadConfigFile, {
|
|
18
|
+
file: existsFile,
|
|
19
|
+
config: fileConfig
|
|
20
|
+
});
|
|
21
|
+
}
|
|
12
22
|
return functionApply ? functionApply(configArr) : configArr;
|
|
13
23
|
}
|
package/dist/helper/setup-env.js
CHANGED
|
@@ -6,6 +6,18 @@ const path = require("node:path");
|
|
|
6
6
|
if (process.env.RSPACK_BINDING_BUILDER_TESTING) {
|
|
7
7
|
process.env.RSPACK_BINDING = path.resolve(__dirname, "../../node_modules/@rspack/binding-testing");
|
|
8
8
|
}
|
|
9
|
+
if (process.env.RSTEST) {
|
|
10
|
+
global.printLogger ??= process.env.printLogger === "true";
|
|
11
|
+
global.__TEST_FIXTURES_PATH__ ??= process.env.__TEST_FIXTURES_PATH__;
|
|
12
|
+
global.updateSnapshot ??= process.env.updateSnapshot === "true";
|
|
13
|
+
global.testFilter ??= process.env.testFilter;
|
|
14
|
+
global.__TEST_PATH__ ??= process.env.__TEST_PATH__;
|
|
15
|
+
global.__TEST_DIST_PATH__ ??= process.env.__TEST_DIST_PATH__;
|
|
16
|
+
global.__ROOT_PATH__ ??= process.env.__ROOT_PATH__;
|
|
17
|
+
global.__RSPACK_PATH__ ??= process.env.__RSPACK_PATH__;
|
|
18
|
+
global.__RSPACK_TEST_TOOLS_PATH__ ??= process.env.__RSPACK_TEST_TOOLS_PATH__;
|
|
19
|
+
global.__DEBUG__ ??= process.env.DEBUG === "test";
|
|
20
|
+
}
|
|
9
21
|
if (process.env.ALTERNATIVE_SORT) {
|
|
10
22
|
const oldSort = Array.prototype.sort;
|
|
11
23
|
Array.prototype.sort = function (cmp) {
|
|
@@ -58,7 +70,8 @@ if (process.env.DEBUG_INFO) {
|
|
|
58
70
|
}, timeout);
|
|
59
71
|
}
|
|
60
72
|
else {
|
|
61
|
-
it(name,
|
|
73
|
+
it(name, () => new Promise((resolve, reject) => {
|
|
74
|
+
const done = err => (err ? reject(err) : resolve());
|
|
62
75
|
process.stdout.write(`START2 ${name}\n`);
|
|
63
76
|
return fn(err => {
|
|
64
77
|
if (err) {
|
|
@@ -69,7 +82,7 @@ if (process.env.DEBUG_INFO) {
|
|
|
69
82
|
}
|
|
70
83
|
return done(err);
|
|
71
84
|
});
|
|
72
|
-
}, timeout);
|
|
85
|
+
}), timeout);
|
|
73
86
|
}
|
|
74
87
|
};
|
|
75
88
|
};
|
|
@@ -6,8 +6,8 @@ const to_match_file_snapshot_1 = require("./expect/to-match-file-snapshot");
|
|
|
6
6
|
const serializers_1 = require("./serializers");
|
|
7
7
|
expect.extend({
|
|
8
8
|
// CHANGE: new test matcher for `rspack-test-tools`
|
|
9
|
-
// @ts-
|
|
10
|
-
|
|
9
|
+
// @ts-expect-error
|
|
10
|
+
toMatchFileSnapshotSync: to_match_file_snapshot_1.toMatchFileSnapshotSync,
|
|
11
11
|
toBeTypeOf: to_be_typeof_1.toBeTypeOf,
|
|
12
12
|
toEndWith: to_end_with_1.toEndWith
|
|
13
13
|
});
|
|
@@ -9,11 +9,11 @@ function toMatchSnapshot() {
|
|
|
9
9
|
function toMatchInlineSnapshot() {
|
|
10
10
|
return { pass: true, message: () => "" };
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function toMatchFileSnapshotSync() {
|
|
13
13
|
return { pass: true, message: () => "" };
|
|
14
14
|
}
|
|
15
15
|
expect.extend({
|
|
16
16
|
toMatchSnapshot,
|
|
17
17
|
toMatchInlineSnapshot,
|
|
18
|
-
|
|
18
|
+
toMatchFileSnapshotSync
|
|
19
19
|
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = stringifyConfig;
|
|
4
|
+
const javascript_stringify_1 = require("javascript-stringify");
|
|
5
|
+
function stringifyConfig(config, verbose = false) {
|
|
6
|
+
return (0, javascript_stringify_1.stringify)(config, (value, indent, stringify) => {
|
|
7
|
+
// improve plugin output
|
|
8
|
+
if (value?.__pluginName) {
|
|
9
|
+
const prefix = `/* config.${value.__pluginType}('${value.__pluginName}') */\n`;
|
|
10
|
+
const constructorExpression = value.__pluginPath
|
|
11
|
+
? // The path is stringified to ensure special characters are escaped
|
|
12
|
+
// (such as the backslashes in Windows-style paths).
|
|
13
|
+
`(require(${stringify(value.__pluginPath)}))`
|
|
14
|
+
: value.__pluginConstructorName;
|
|
15
|
+
if (constructorExpression) {
|
|
16
|
+
// get correct indentation for args by stringifying the args array and
|
|
17
|
+
// discarding the square brackets.
|
|
18
|
+
const args = stringify(value.__pluginArgs)?.slice(1, -1);
|
|
19
|
+
return `${prefix}new ${constructorExpression}(${args})`;
|
|
20
|
+
}
|
|
21
|
+
return (prefix +
|
|
22
|
+
stringify(value.__pluginArgs?.length ? { args: value.__pluginArgs } : {}));
|
|
23
|
+
}
|
|
24
|
+
// improve rule/use output
|
|
25
|
+
if (value?.__ruleNames) {
|
|
26
|
+
const ruleTypes = value.__ruleTypes;
|
|
27
|
+
const prefix = `/* config.module${value.__ruleNames
|
|
28
|
+
.map((r, index) => `.${ruleTypes ? ruleTypes[index] : "rule"}('${r}')`)
|
|
29
|
+
.join("")}${value.__useName ? `.use('${value.__useName}')` : ``} */\n`;
|
|
30
|
+
return prefix + stringify(value);
|
|
31
|
+
}
|
|
32
|
+
if (value?.__expression) {
|
|
33
|
+
return value.__expression;
|
|
34
|
+
}
|
|
35
|
+
// shorten long functions
|
|
36
|
+
if (typeof value === "function") {
|
|
37
|
+
if (!verbose && value.toString().length > 100) {
|
|
38
|
+
return `function () { /* omitted long function */ }`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return stringify(value);
|
|
42
|
+
}, 2);
|
|
43
|
+
}
|
|
@@ -16,24 +16,6 @@ exports.checkChunkModules = function checkChunkModules(statsJson, chunkModulesMa
|
|
|
16
16
|
}
|
|
17
17
|
return true;
|
|
18
18
|
};
|
|
19
|
-
exports.checkChunkRuntime = function checkChunkModules(statsJson, chunkModulesMap, strict = true) {
|
|
20
|
-
for (const chunkId of Reflect.ownKeys(chunkModulesMap)) {
|
|
21
|
-
const chunk = getChunk(statsJson, chunkId);
|
|
22
|
-
const expectedRuntime = chunkModulesMap[chunkId];
|
|
23
|
-
const chunkRuntime = chunk.runtime;
|
|
24
|
-
if (strict) {
|
|
25
|
-
expectedRuntime.length === chunkRuntime.length;
|
|
26
|
-
}
|
|
27
|
-
for (let i = 0; i < expectedRuntime.length; i++) {
|
|
28
|
-
const expected = expectedRuntime[i];
|
|
29
|
-
const rt = chunkRuntime[i];
|
|
30
|
-
if (expected !== rt) {
|
|
31
|
-
throw new Error(`chunk ${chunkId} runtime not equal, expected: ${expectedRuntime}, but got: ${chunkRuntime}`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return true;
|
|
36
|
-
};
|
|
37
19
|
function getChunk(statsJson, id) {
|
|
38
20
|
const chunk = statsJson.chunks.find(chunk => chunk.id.includes(id));
|
|
39
21
|
if (!chunk) {
|
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
module.exports = () => {
|
|
4
4
|
const warnings = [];
|
|
5
5
|
let oldWarn;
|
|
6
|
-
beforeEach(
|
|
6
|
+
beforeEach(() => {
|
|
7
7
|
oldWarn = console.warn;
|
|
8
8
|
console.warn = m => warnings.push(m);
|
|
9
|
-
done();
|
|
10
9
|
});
|
|
11
|
-
afterEach(
|
|
10
|
+
afterEach(() => {
|
|
12
11
|
expectWarning();
|
|
13
12
|
console.warn = oldWarn;
|
|
14
|
-
done();
|
|
15
13
|
});
|
|
16
14
|
const expectWarning = (...regexp) => {
|
|
17
15
|
expect(warnings).toEqual(regexp.map(r => expect.stringMatching(r)));
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
export * from "./case";
|
|
2
|
-
export * from "./compare";
|
|
3
2
|
export * from "./helper";
|
|
4
3
|
export * from "./plugin";
|
|
5
|
-
export * from "./processor";
|
|
6
|
-
export * from "./reporter";
|
|
7
4
|
export * from "./runner";
|
|
8
5
|
export * from "./test/context";
|
|
9
6
|
export * from "./test/creator";
|
|
10
|
-
export * from "./test/simple";
|
|
11
7
|
export * from "./test/tester";
|
|
12
8
|
export * from "./type";
|
package/dist/index.js
CHANGED
|
@@ -15,14 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./case"), exports);
|
|
18
|
-
__exportStar(require("./compare"), exports);
|
|
19
18
|
__exportStar(require("./helper"), exports);
|
|
20
19
|
__exportStar(require("./plugin"), exports);
|
|
21
|
-
__exportStar(require("./processor"), exports);
|
|
22
|
-
__exportStar(require("./reporter"), exports);
|
|
23
20
|
__exportStar(require("./runner"), exports);
|
|
24
21
|
__exportStar(require("./test/context"), exports);
|
|
25
22
|
__exportStar(require("./test/creator"), exports);
|
|
26
|
-
__exportStar(require("./test/simple"), exports);
|
|
27
23
|
__exportStar(require("./test/tester"), exports);
|
|
28
24
|
__exportStar(require("./type"), exports);
|
package/dist/plugin/index.d.ts
CHANGED
package/dist/plugin/index.js
CHANGED
|
@@ -15,6 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./lazy-compilation-test-plugin"), exports);
|
|
18
|
-
__exportStar(require("./rspack-diff-config-plugin"), exports);
|
|
19
|
-
__exportStar(require("./webpack-diff-config-plugin"), exports);
|
|
20
|
-
__exportStar(require("./webpack-module-placeholder-plugin"), exports);
|
|
@@ -21,13 +21,13 @@ class LazyCompilationTestPlugin {
|
|
|
21
21
|
: `${protocol}://${addr.address}:${addr.port}`;
|
|
22
22
|
if (compiler instanceof core_1.MultiCompiler) {
|
|
23
23
|
for (const c of compiler.compilers) {
|
|
24
|
-
if (c.options.
|
|
25
|
-
c.options.
|
|
24
|
+
if (c.options.lazyCompilation) {
|
|
25
|
+
c.options.lazyCompilation.serverUrl = urlBase;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
else if (compiler.options.
|
|
30
|
-
compiler.options.
|
|
29
|
+
else if (compiler.options.lazyCompilation) {
|
|
30
|
+
compiler.options.lazyCompilation.serverUrl = urlBase;
|
|
31
31
|
}
|
|
32
32
|
middleware = core_1.experiments.lazyCompilationMiddleware(compiler);
|
|
33
33
|
resolve(null);
|
package/dist/runner/index.d.ts
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./hot";
|
|
4
|
-
export * from "./hot-step";
|
|
5
|
-
export * from "./multiple";
|
|
6
|
-
export * from "./normal";
|
|
7
|
-
export * from "./runner";
|
|
8
|
-
export * from "./type";
|
|
9
|
-
export * from "./watch";
|
|
1
|
+
export * from "./node";
|
|
2
|
+
export * from "./web";
|
package/dist/runner/index.js
CHANGED
|
@@ -14,12 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./hot"), exports);
|
|
20
|
-
__exportStar(require("./hot-step"), exports);
|
|
21
|
-
__exportStar(require("./multiple"), exports);
|
|
22
|
-
__exportStar(require("./normal"), exports);
|
|
23
|
-
__exportStar(require("./runner"), exports);
|
|
24
|
-
__exportStar(require("./type"), exports);
|
|
25
|
-
__exportStar(require("./watch"), exports);
|
|
17
|
+
__exportStar(require("./node"), exports);
|
|
18
|
+
__exportStar(require("./web"), exports);
|