@rstest/core 0.5.0 → 0.5.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/LICENSE.md +270 -12
- package/dist/0~33.js +19 -12
- package/dist/0~655.js +3 -3
- package/dist/0~816.js +110 -55
- package/dist/0~85.js +0 -1
- package/dist/0~928.js +1 -1
- package/dist/0~967.js +1 -1
- package/dist/0~971.js +13 -7
- package/dist/index.js +1874 -95
- package/dist/worker.js +1787 -68
- package/dist-types/index.d.ts +83 -2
- package/dist-types/worker.d.ts +24 -5
- package/package.json +6 -3
- package/dist/0~223.js +0 -158
- package/dist/0~876.js +0 -761
- package/dist/0~908.js +0 -920
- package/dist/0~969.js +0 -1738
package/dist/0~816.js
CHANGED
|
@@ -18,6 +18,7 @@ export const __webpack_modules__ = {
|
|
|
18
18
|
var core_ = __webpack_require__("@rsbuild/core");
|
|
19
19
|
var dist = __webpack_require__("../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.mjs");
|
|
20
20
|
var utils = __webpack_require__("./src/utils/index.ts");
|
|
21
|
+
var memory = __webpack_require__("./src/utils/memory.ts");
|
|
21
22
|
const RUNTIME_CHUNK_NAME = 'runtime';
|
|
22
23
|
const pluginBasic = (context)=>({
|
|
23
24
|
name: 'rstest:basic',
|
|
@@ -106,7 +107,7 @@ export const __webpack_modules__ = {
|
|
|
106
107
|
});
|
|
107
108
|
}
|
|
108
109
|
});
|
|
109
|
-
var external_node_path_ = __webpack_require__("path");
|
|
110
|
+
var external_node_path_ = __webpack_require__("node:path");
|
|
110
111
|
var external_node_url_ = __webpack_require__("node:url");
|
|
111
112
|
const PLUGIN_CSS_FILTER = 'rstest:css-filter';
|
|
112
113
|
const css_filter_dirname = external_node_path_["default"].dirname((0, external_node_url_.fileURLToPath)(import.meta.url));
|
|
@@ -183,6 +184,7 @@ export const __webpack_modules__ = {
|
|
|
183
184
|
});
|
|
184
185
|
}
|
|
185
186
|
});
|
|
187
|
+
var external_node_module_ = __webpack_require__("node:module");
|
|
186
188
|
const autoExternalNodeModules = ({ context, request, dependencyType, getResolve }, callback)=>{
|
|
187
189
|
if (!request) return callback();
|
|
188
190
|
if (request.startsWith('@swc/helpers/')) return callback();
|
|
@@ -199,7 +201,7 @@ export const __webpack_modules__ = {
|
|
|
199
201
|
};
|
|
200
202
|
function autoExternalNodeBuiltin({ request, dependencyType }, callback) {
|
|
201
203
|
if (!request) return void callback();
|
|
202
|
-
const isNodeBuiltin = utils.
|
|
204
|
+
const isNodeBuiltin = (0, external_node_module_.isBuiltin)(request) || utils.Uq.some((builtin)=>{
|
|
203
205
|
if ('string' == typeof builtin) return builtin === request;
|
|
204
206
|
return builtin.test(request);
|
|
205
207
|
});
|
|
@@ -441,15 +443,14 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
441
443
|
});
|
|
442
444
|
}
|
|
443
445
|
});
|
|
444
|
-
function
|
|
446
|
+
function parseInlineSourceMapStr(code) {
|
|
445
447
|
const inlineSourceMapRegex = /\/\/# sourceMappingURL=data:application\/json(?:;charset=utf-8)?;base64,(.+)\s*$/m;
|
|
446
448
|
const match = code.match(inlineSourceMapRegex);
|
|
447
449
|
if (!match || !match[1]) return null;
|
|
448
450
|
try {
|
|
449
451
|
const base64Data = match[1];
|
|
450
452
|
const decodedStr = Buffer.from(base64Data, 'base64').toString('utf-8');
|
|
451
|
-
|
|
452
|
-
return sourceMap;
|
|
453
|
+
return decodedStr;
|
|
453
454
|
} catch (_error) {
|
|
454
455
|
return null;
|
|
455
456
|
}
|
|
@@ -561,6 +562,13 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
561
562
|
deletedEntries
|
|
562
563
|
};
|
|
563
564
|
};
|
|
565
|
+
class AssetsMemorySafeMap extends Map {
|
|
566
|
+
set(key, value) {
|
|
567
|
+
if (this.has(key)) return this;
|
|
568
|
+
if (!(0, memory.i)()) this.clear();
|
|
569
|
+
return super.set(key, value);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
564
572
|
const createRsbuildServer = async ({ globTestSourceEntries, setupFiles, rsbuildInstance, inspectedConfig })=>{
|
|
565
573
|
let rspackCompiler;
|
|
566
574
|
const rstestCompilerPlugin = {
|
|
@@ -604,8 +612,9 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
604
612
|
};
|
|
605
613
|
const getRsbuildStats = async ({ environmentName, fileFilters })=>{
|
|
606
614
|
const stats = await devServer.environments[environmentName].getStats();
|
|
615
|
+
const enableAssetsCache = (0, memory.i)();
|
|
607
616
|
const manifest = devServer.environments[environmentName].context.manifest;
|
|
608
|
-
const { entrypoints, outputPath, assets, hash,
|
|
617
|
+
const { entrypoints, outputPath, assets, hash, chunks } = stats.toJson({
|
|
609
618
|
all: false,
|
|
610
619
|
hash: true,
|
|
611
620
|
entrypoints: true,
|
|
@@ -640,47 +649,72 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
640
649
|
}
|
|
641
650
|
}
|
|
642
651
|
const inlineSourceMap = 'inline-source-map' === stats.compilation.options.devtool;
|
|
643
|
-
const
|
|
652
|
+
const sourceMapPaths = Object.fromEntries(assets.map((asset)=>{
|
|
644
653
|
const assetFilePath = dist.Ay.join(outputPath, asset.name);
|
|
645
|
-
if (inlineSourceMap)
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
parseInlineSourceMap(content)
|
|
650
|
-
];
|
|
651
|
-
}
|
|
654
|
+
if (inlineSourceMap) return [
|
|
655
|
+
assetFilePath,
|
|
656
|
+
assetFilePath
|
|
657
|
+
];
|
|
652
658
|
const sourceMapPath = asset?.info.related?.sourceMap?.[0];
|
|
653
659
|
if (sourceMapPath) {
|
|
654
660
|
const filePath = dist.Ay.join(outputPath, sourceMapPath);
|
|
655
|
-
const sourceMap = await readFile(filePath);
|
|
656
661
|
return [
|
|
657
662
|
assetFilePath,
|
|
658
|
-
|
|
663
|
+
filePath
|
|
659
664
|
];
|
|
660
665
|
}
|
|
661
666
|
return [
|
|
662
667
|
assetFilePath,
|
|
663
668
|
null
|
|
664
669
|
];
|
|
665
|
-
}))
|
|
670
|
+
}));
|
|
666
671
|
buildData[environmentName] ??= {};
|
|
667
672
|
const { affectedEntries, deletedEntries } = calcEntriesToRerun(entries, chunks, buildData[environmentName], `${environmentName}-${RUNTIME_CHUNK_NAME}`);
|
|
673
|
+
const cachedAssetFiles = new AssetsMemorySafeMap();
|
|
674
|
+
const cachedSourceMaps = new AssetsMemorySafeMap();
|
|
675
|
+
const readFileWithCache = async (name)=>{
|
|
676
|
+
if (enableAssetsCache && cachedAssetFiles.has(name)) return cachedAssetFiles.get(name);
|
|
677
|
+
const content = await readFile(name);
|
|
678
|
+
enableAssetsCache && cachedAssetFiles.set(name, content);
|
|
679
|
+
return content;
|
|
680
|
+
};
|
|
681
|
+
const getSourceMap = async (name)=>{
|
|
682
|
+
const sourceMapPath = sourceMapPaths[name];
|
|
683
|
+
if (!sourceMapPath) return null;
|
|
684
|
+
if (enableAssetsCache && cachedSourceMaps.has(name)) return cachedSourceMaps.get(name);
|
|
685
|
+
let content = null;
|
|
686
|
+
if (inlineSourceMap) {
|
|
687
|
+
const file = await readFile(sourceMapPath);
|
|
688
|
+
content = parseInlineSourceMapStr(file);
|
|
689
|
+
} else {
|
|
690
|
+
const sourceMap = await readFile(sourceMapPath);
|
|
691
|
+
content = sourceMap;
|
|
692
|
+
}
|
|
693
|
+
enableAssetsCache && content && cachedSourceMaps.set(name, content);
|
|
694
|
+
return content;
|
|
695
|
+
};
|
|
696
|
+
const assetNames = assets.map((asset)=>dist.Ay.join(outputPath, asset.name));
|
|
668
697
|
return {
|
|
669
698
|
affectedEntries,
|
|
670
699
|
deletedEntries,
|
|
671
700
|
hash,
|
|
672
701
|
entries,
|
|
673
702
|
setupEntries,
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
703
|
+
assetNames,
|
|
704
|
+
getAssetFiles: async (names)=>Object.fromEntries(await Promise.all(names.map(async (name)=>{
|
|
705
|
+
const content = await readFileWithCache(name);
|
|
706
|
+
return [
|
|
707
|
+
name,
|
|
708
|
+
content
|
|
709
|
+
];
|
|
710
|
+
}))),
|
|
711
|
+
getSourceMaps: async (names)=>Object.fromEntries(await Promise.all(names.map(async (name)=>{
|
|
712
|
+
const content = await getSourceMap(name);
|
|
713
|
+
return [
|
|
714
|
+
name,
|
|
715
|
+
content
|
|
716
|
+
];
|
|
717
|
+
})))
|
|
684
718
|
};
|
|
685
719
|
};
|
|
686
720
|
return {
|
|
@@ -695,6 +729,7 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
695
729
|
});
|
|
696
730
|
var external_node_os_ = __webpack_require__("node:os");
|
|
697
731
|
var utils = __webpack_require__("./src/utils/index.ts");
|
|
732
|
+
var memory = __webpack_require__("./src/utils/memory.ts");
|
|
698
733
|
var external_node_url_ = __webpack_require__("node:url");
|
|
699
734
|
const TYPE_REQUEST = "q";
|
|
700
735
|
const TYPE_RESPONSE = "s";
|
|
@@ -940,8 +975,9 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
940
975
|
return parsed > 0 ? parsed : 1;
|
|
941
976
|
};
|
|
942
977
|
const getRuntimeConfig = (context)=>{
|
|
943
|
-
const { testNamePattern, testTimeout, passWithNoTests, retry, globals, clearMocks, resetMocks, restoreMocks, unstubEnvs, unstubGlobals, maxConcurrency, printConsoleTrace, disableConsoleIntercept, testEnvironment, hookTimeout, isolate, coverage } = context.normalizedConfig;
|
|
978
|
+
const { testNamePattern, testTimeout, passWithNoTests, retry, globals, clearMocks, resetMocks, restoreMocks, unstubEnvs, unstubGlobals, maxConcurrency, printConsoleTrace, disableConsoleIntercept, testEnvironment, hookTimeout, isolate, coverage, snapshotFormat, env } = context.normalizedConfig;
|
|
944
979
|
return {
|
|
980
|
+
env,
|
|
945
981
|
testNamePattern,
|
|
946
982
|
testTimeout,
|
|
947
983
|
hookTimeout,
|
|
@@ -958,12 +994,17 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
958
994
|
disableConsoleIntercept,
|
|
959
995
|
testEnvironment,
|
|
960
996
|
isolate,
|
|
961
|
-
coverage
|
|
997
|
+
coverage,
|
|
998
|
+
snapshotFormat
|
|
962
999
|
};
|
|
963
1000
|
};
|
|
964
|
-
const filterAssetsByEntry = (entryInfo,
|
|
965
|
-
const
|
|
966
|
-
|
|
1001
|
+
const filterAssetsByEntry = async (entryInfo, getAssetFiles, getSourceMaps, setupAssets)=>{
|
|
1002
|
+
const assetNames = Array.from(new Set([
|
|
1003
|
+
...entryInfo.files,
|
|
1004
|
+
...setupAssets
|
|
1005
|
+
]));
|
|
1006
|
+
const neededFiles = await getAssetFiles(assetNames);
|
|
1007
|
+
const neededSourceMaps = await getSourceMaps(assetNames);
|
|
967
1008
|
return {
|
|
968
1009
|
assetFiles: neededFiles,
|
|
969
1010
|
sourceMaps: neededSourceMaps
|
|
@@ -1006,23 +1047,17 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1006
1047
|
},
|
|
1007
1048
|
onTestFileStart: async (test)=>{
|
|
1008
1049
|
await Promise.all(reporters.map((reporter)=>reporter.onTestFileStart?.(test)));
|
|
1009
|
-
},
|
|
1010
|
-
onTestFileResult: async (test)=>{
|
|
1011
|
-
await Promise.all(reporters.map((reporter)=>reporter.onTestFileResult?.(test)));
|
|
1012
1050
|
}
|
|
1013
1051
|
};
|
|
1014
1052
|
return {
|
|
1015
|
-
runTests: async ({ entries,
|
|
1053
|
+
runTests: async ({ entries, getAssetFiles, getSourceMaps, setupEntries, project, updateSnapshot })=>{
|
|
1016
1054
|
const projectName = context.normalizedConfig.name;
|
|
1017
1055
|
const runtimeConfig = getRuntimeConfig(project);
|
|
1018
1056
|
const setupAssets = setupEntries.flatMap((entry)=>entry.files || []);
|
|
1019
|
-
const
|
|
1020
|
-
|
|
1021
|
-
const { assetFiles: neededFiles, sourceMaps: neededSourceMaps } = filterAssetsByEntry(entryInfo, assetFiles, setupAssets, sourceMaps, entryLength);
|
|
1022
|
-
return pool.runTest({
|
|
1057
|
+
const results = await Promise.all(entries.map(async (entryInfo)=>{
|
|
1058
|
+
const result = await pool.runTest({
|
|
1023
1059
|
options: {
|
|
1024
1060
|
entryInfo,
|
|
1025
|
-
assetFiles: neededFiles,
|
|
1026
1061
|
context: {
|
|
1027
1062
|
project: projectName,
|
|
1028
1063
|
rootPath: context.rootPath,
|
|
@@ -1030,11 +1065,14 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1030
1065
|
runtimeConfig: (0, utils.Ok)(runtimeConfig)
|
|
1031
1066
|
},
|
|
1032
1067
|
type: 'run',
|
|
1033
|
-
sourceMaps: neededSourceMaps,
|
|
1034
1068
|
setupEntries,
|
|
1035
|
-
updateSnapshot
|
|
1069
|
+
updateSnapshot,
|
|
1070
|
+
assets: (0, memory.i)() ? await filterAssetsByEntry(entryInfo, getAssetFiles, getSourceMaps, setupAssets) : void 0
|
|
1036
1071
|
},
|
|
1037
|
-
rpcMethods
|
|
1072
|
+
rpcMethods: {
|
|
1073
|
+
...rpcMethods,
|
|
1074
|
+
getAssetsByEntry: async ()=>filterAssetsByEntry(entryInfo, getAssetFiles, getSourceMaps, setupAssets)
|
|
1075
|
+
}
|
|
1038
1076
|
}).catch((err)=>{
|
|
1039
1077
|
err.fullStack = true;
|
|
1040
1078
|
return {
|
|
@@ -1048,6 +1086,8 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1048
1086
|
]
|
|
1049
1087
|
};
|
|
1050
1088
|
});
|
|
1089
|
+
reporters.map((reporter)=>reporter.onTestFileResult?.(result));
|
|
1090
|
+
return result;
|
|
1051
1091
|
}));
|
|
1052
1092
|
for (const result of results)if (result.snapshotResult) context.snapshotManager.add(result.snapshotResult);
|
|
1053
1093
|
const testResults = results.flatMap((r)=>r.results);
|
|
@@ -1057,17 +1097,13 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1057
1097
|
project
|
|
1058
1098
|
};
|
|
1059
1099
|
},
|
|
1060
|
-
collectTests: async ({ entries,
|
|
1100
|
+
collectTests: async ({ entries, getAssetFiles, getSourceMaps, setupEntries, project, updateSnapshot })=>{
|
|
1061
1101
|
const runtimeConfig = getRuntimeConfig(project);
|
|
1062
1102
|
const projectName = project.normalizedConfig.name;
|
|
1063
1103
|
const setupAssets = setupEntries.flatMap((entry)=>entry.files || []);
|
|
1064
|
-
|
|
1065
|
-
return Promise.all(entries.map((entryInfo)=>{
|
|
1066
|
-
const { assetFiles: neededFiles, sourceMaps: neededSourceMaps } = filterAssetsByEntry(entryInfo, assetFiles, setupAssets, sourceMaps, entryLength);
|
|
1067
|
-
return pool.collectTests({
|
|
1104
|
+
return Promise.all(entries.map(async (entryInfo)=>pool.collectTests({
|
|
1068
1105
|
options: {
|
|
1069
1106
|
entryInfo,
|
|
1070
|
-
assetFiles: neededFiles,
|
|
1071
1107
|
context: {
|
|
1072
1108
|
project: projectName,
|
|
1073
1109
|
rootPath: context.rootPath,
|
|
@@ -1075,11 +1111,14 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1075
1111
|
runtimeConfig: (0, utils.Ok)(runtimeConfig)
|
|
1076
1112
|
},
|
|
1077
1113
|
type: 'collect',
|
|
1078
|
-
sourceMaps: neededSourceMaps,
|
|
1079
1114
|
setupEntries,
|
|
1080
|
-
updateSnapshot
|
|
1115
|
+
updateSnapshot,
|
|
1116
|
+
assets: (0, memory.i)() ? await filterAssetsByEntry(entryInfo, getAssetFiles, getSourceMaps, setupAssets) : void 0
|
|
1081
1117
|
},
|
|
1082
|
-
rpcMethods
|
|
1118
|
+
rpcMethods: {
|
|
1119
|
+
...rpcMethods,
|
|
1120
|
+
getAssetsByEntry: async ()=>filterAssetsByEntry(entryInfo, getAssetFiles, getSourceMaps, setupAssets)
|
|
1121
|
+
}
|
|
1083
1122
|
}).catch((err)=>{
|
|
1084
1123
|
err.fullStack = true;
|
|
1085
1124
|
return {
|
|
@@ -1090,13 +1129,29 @@ global.__rstest_clean_core_cache__ = __rstest_clean_core_cache__;
|
|
|
1090
1129
|
err
|
|
1091
1130
|
]
|
|
1092
1131
|
};
|
|
1093
|
-
});
|
|
1094
|
-
}));
|
|
1132
|
+
})));
|
|
1095
1133
|
},
|
|
1096
1134
|
close: ()=>pool.close()
|
|
1097
1135
|
};
|
|
1098
1136
|
};
|
|
1099
1137
|
},
|
|
1138
|
+
"./src/utils/memory.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1139
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1140
|
+
i: ()=>isMemorySufficient
|
|
1141
|
+
});
|
|
1142
|
+
var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:process");
|
|
1143
|
+
const DefaultMaxHeapSize = 1073741824;
|
|
1144
|
+
function isMemorySufficient(options) {
|
|
1145
|
+
const { memoryThreshold = 0.7, maxHeapSize = DefaultMaxHeapSize } = options || {};
|
|
1146
|
+
if (!node_process__WEBPACK_IMPORTED_MODULE_0__["default"]?.memoryUsage) return true;
|
|
1147
|
+
const memoryUsage = node_process__WEBPACK_IMPORTED_MODULE_0__["default"].memoryUsage();
|
|
1148
|
+
const heapUsed = memoryUsage.heapUsed;
|
|
1149
|
+
const heapTotal = memoryUsage.heapTotal;
|
|
1150
|
+
const memoryUsageRatio = heapUsed / heapTotal;
|
|
1151
|
+
const isMemorySufficient = memoryUsageRatio < memoryThreshold && heapUsed < maxHeapSize;
|
|
1152
|
+
return isMemorySufficient;
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1100
1155
|
"node:url": function(module) {
|
|
1101
1156
|
module.exports = __WEBPACK_EXTERNAL_MODULE_node_url_e96de089__;
|
|
1102
1157
|
}
|
package/dist/0~85.js
CHANGED
package/dist/0~928.js
CHANGED
|
@@ -13,7 +13,7 @@ export const __webpack_modules__ = {
|
|
|
13
13
|
var external_node_fs_ = __webpack_require__("node:fs");
|
|
14
14
|
var promises_ = __webpack_require__("fs/promises");
|
|
15
15
|
var external_events_ = __webpack_require__("events");
|
|
16
|
-
var external_node_path_ = __webpack_require__("path");
|
|
16
|
+
var external_node_path_ = __webpack_require__("node:path");
|
|
17
17
|
var external_node_fs_promises_ = __webpack_require__("node:fs/promises");
|
|
18
18
|
var external_node_stream_ = __webpack_require__("node:stream");
|
|
19
19
|
const EntryTypes = {
|
package/dist/0~967.js
CHANGED
|
@@ -10,7 +10,7 @@ export const __webpack_modules__ = {
|
|
|
10
10
|
onBeforeRestart: ()=>onBeforeRestart,
|
|
11
11
|
watchFilesForRestart: ()=>watchFilesForRestart
|
|
12
12
|
});
|
|
13
|
-
var external_node_path_ = __webpack_require__("path");
|
|
13
|
+
var external_node_path_ = __webpack_require__("node:path");
|
|
14
14
|
var commands = __webpack_require__("./src/cli/commands.ts");
|
|
15
15
|
var utils = __webpack_require__("./src/utils/index.ts");
|
|
16
16
|
const GLOB_REGEX = /[*?{}[\]()!@+|]/;
|
package/dist/0~971.js
CHANGED
|
@@ -10,7 +10,7 @@ export const __webpack_modules__ = {
|
|
|
10
10
|
listTests: ()=>listTests
|
|
11
11
|
});
|
|
12
12
|
var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:fs");
|
|
13
|
-
var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("path");
|
|
13
|
+
var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:path");
|
|
14
14
|
var _pool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./src/pool/index.ts");
|
|
15
15
|
var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/index.ts");
|
|
16
16
|
var _rsbuild__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./src/core/rsbuild.ts");
|
|
@@ -54,24 +54,24 @@ export const __webpack_modules__ = {
|
|
|
54
54
|
});
|
|
55
55
|
const updateSnapshot = context.snapshotManager.options.updateSnapshot;
|
|
56
56
|
const returns = await Promise.all(context.projects.map(async (project)=>{
|
|
57
|
-
const { entries, setupEntries,
|
|
57
|
+
const { entries, setupEntries, getSourceMaps, getAssetFiles, assetNames } = await getRsbuildStats({
|
|
58
58
|
environmentName: project.environmentName
|
|
59
59
|
});
|
|
60
60
|
const list = await pool.collectTests({
|
|
61
61
|
entries,
|
|
62
|
-
sourceMaps,
|
|
63
62
|
setupEntries,
|
|
64
|
-
|
|
63
|
+
getAssetFiles,
|
|
64
|
+
getSourceMaps,
|
|
65
65
|
project,
|
|
66
66
|
updateSnapshot
|
|
67
67
|
});
|
|
68
68
|
return {
|
|
69
69
|
list,
|
|
70
|
-
|
|
70
|
+
getSourceMaps,
|
|
71
|
+
assetNames
|
|
71
72
|
};
|
|
72
73
|
}));
|
|
73
74
|
const list = returns.flatMap((r)=>r.list);
|
|
74
|
-
const sourceMaps = Object.assign({}, ...returns.map((r)=>r.sourceMaps));
|
|
75
75
|
const tests = [];
|
|
76
76
|
const traverseTests = (test)=>{
|
|
77
77
|
if ([
|
|
@@ -98,7 +98,13 @@ export const __webpack_modules__ = {
|
|
|
98
98
|
const relativePath = (0, node_path__WEBPACK_IMPORTED_MODULE_1__.relative)(rootPath, file.testPath);
|
|
99
99
|
if (file.errors?.length) {
|
|
100
100
|
_utils__WEBPACK_IMPORTED_MODULE_3__.vF.log(`${_utils__WEBPACK_IMPORTED_MODULE_3__.yW.bgRed(' FAIL ')} ${relativePath}`);
|
|
101
|
-
for (const error of file.errors)await printError(error, (name)=>
|
|
101
|
+
for (const error of file.errors)await printError(error, async (name)=>{
|
|
102
|
+
const resource = returns.find((r)=>r.assetNames.includes(name));
|
|
103
|
+
const sourceMap = (await resource?.getSourceMaps([
|
|
104
|
+
name
|
|
105
|
+
]))?.[name];
|
|
106
|
+
return sourceMap ? JSON.parse(sourceMap) : null;
|
|
107
|
+
}, rootPath);
|
|
102
108
|
}
|
|
103
109
|
}
|
|
104
110
|
await closeServer();
|