testplane 9.0.10 → 9.0.12
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/build/package.json +3 -3
- package/build/src/browser/cdp/selectivity/index.js +41 -10
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +41 -5
- package/build/src/browser/cdp/selectivity/js-selectivity.js +115 -50
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
- package/build/src/testplane.d.ts +7 -2
- package/build/src/testplane.js.map +1 -1
- package/build/src/types/index.d.ts +6 -1
- package/build/src/types/index.js.map +1 -1
- package/package.json +3 -3
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testplane",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.12",
|
|
4
4
|
"description": "Tests framework based on mocha and wdio",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"lint": "eslint --cache . && prettier --check .",
|
|
31
31
|
"reformat": "eslint --fix . && prettier --write .",
|
|
32
32
|
"prettier-watch": "onchange '**' --exclude-path .prettierignore -- prettier --write {{changed}}",
|
|
33
|
-
"test-unit": "node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|e2e|browser-env|fixtures)/**/*.[jt]s\"",
|
|
34
|
-
"test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|browser-env|e2e)/**/*.[jt]s\"",
|
|
33
|
+
"test-unit": "node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|e2e|browser-env|fixtures|type-tests)/**/*.[jt]s\"",
|
|
34
|
+
"test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|browser-env|e2e|type-tests)/**/*.[jt]s\"",
|
|
35
35
|
"test-unit:generate-fixtures": "TS_NODE_PROJECT=test/tsconfig.json node -r ts-node/register -r tsconfig-paths/register test/src/browser/screen-shooter/composite-image/fixtures/generate.ts generate",
|
|
36
36
|
"test": "npm run test-unit && npm run check-types && npm run lint",
|
|
37
37
|
"test-integration": "TS_NODE_TRANSPILE_ONLY=1 node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha -r ts-node/register test/integration/*/**",
|
|
@@ -116,8 +116,20 @@ const clearUnusedSelectivityDumps = async (config, isRunFailed) => {
|
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
118
|
exports.clearUnusedSelectivityDumps = clearUnusedSelectivityDumps;
|
|
119
|
+
// Pauses the renderer at page boundaries so JS coverage can be resolved/reset while "scriptId"s are still valid:
|
|
120
|
+
// - "page start": first thing on every new document, and on bfcache restore ("pageshow" with persisted=true),
|
|
121
|
+
// BEFORE the incoming page's scripts run — the point where the previous page is done and the next hasn't started;
|
|
122
|
+
// - "beforeunload": while the leaving page is still alive (needed to capture it before a cross-process isolate swap).
|
|
123
|
+
const testplaneCoveragePageStartScriptName = "__testplane_cdp_coverage_page_start";
|
|
119
124
|
const testplaneCoverageBreakScriptName = "__testplane_cdp_coverage_snapshot_pause";
|
|
120
|
-
const scriptToEvaluateOnNewDocument =
|
|
125
|
+
const scriptToEvaluateOnNewDocument = [
|
|
126
|
+
"if (window.top === window) {",
|
|
127
|
+
` function ${testplaneCoveragePageStartScriptName}() { debugger; }`,
|
|
128
|
+
` ${testplaneCoveragePageStartScriptName}();`,
|
|
129
|
+
` window.addEventListener("pageshow", function (e) { if (e.persisted) { ${testplaneCoveragePageStartScriptName}(); } });`,
|
|
130
|
+
` window.addEventListener("beforeunload", function ${testplaneCoverageBreakScriptName}() { debugger; });`,
|
|
131
|
+
"}",
|
|
132
|
+
].join("\n");
|
|
121
133
|
const startSelectivity = async (browser) => {
|
|
122
134
|
const { enabled, compression, sourceRoot, testDependenciesPath, mapDependencyRelativePath, mapSourceMapUrl } = browser.config.selectivity;
|
|
123
135
|
if (!(0, modes_1.selectivityShouldWrite)(enabled) || !browser.publicAPI.isChromium) {
|
|
@@ -160,21 +172,37 @@ const startSelectivity = async (browser) => {
|
|
|
160
172
|
});
|
|
161
173
|
let pageSwitchPromise = Promise.resolve();
|
|
162
174
|
let isSelectivityStopped = false;
|
|
175
|
+
// A failure to process coverage means the test's dependencies would be incomplete. Missing a dependency is worse
|
|
176
|
+
// than failing the test (an incomplete dump silently under-runs later), so we remember the error and rethrow it
|
|
177
|
+
// from stopSelectivity — but still resume the renderer so the browser is never left paused.
|
|
178
|
+
let pageSwitchError = null;
|
|
179
|
+
const resume = () => {
|
|
180
|
+
cdp.debugger.resume(cdpSessionId).catch(() => { });
|
|
181
|
+
};
|
|
163
182
|
const debuggerPausedFn = ({ callFrames }, eventCdpSessionId) => {
|
|
164
183
|
if (eventCdpSessionId !== cdpSessionId) {
|
|
165
184
|
return;
|
|
166
185
|
}
|
|
167
|
-
|
|
168
|
-
|
|
186
|
+
const functionName = callFrames[0]?.functionName;
|
|
187
|
+
const isBeforeUnloadPause = functionName === testplaneCoverageBreakScriptName;
|
|
188
|
+
const isPageStartPause = functionName === testplaneCoveragePageStartScriptName;
|
|
189
|
+
if (isSelectivityStopped || (!isBeforeUnloadPause && !isPageStartPause)) {
|
|
190
|
+
resume();
|
|
169
191
|
return;
|
|
170
192
|
}
|
|
171
|
-
pageSwitchPromise = pageSwitchPromise.finally(() =>
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
193
|
+
pageSwitchPromise = pageSwitchPromise.finally(() => {
|
|
194
|
+
// "beforeunload": leaving page still alive — snapshot+resolve it (captures it before a cross-process swap).
|
|
195
|
+
// "page start" / bfcache restore: previous page done, next not started — resolve its tail, then reset
|
|
196
|
+
// coverage and clear the script maps so the next page starts with a clean window and id namespace.
|
|
197
|
+
const action = isBeforeUnloadPause
|
|
198
|
+
? Promise.all([cssSelectivity.takeCoverageSnapshot(), jsSelectivity.takeCoverageSnapshot()])
|
|
199
|
+
: jsSelectivity.flushPage();
|
|
200
|
+
return Promise.resolve(action)
|
|
201
|
+
.catch(err => {
|
|
202
|
+
pageSwitchError ||= err instanceof Error ? err : new Error(String(err));
|
|
203
|
+
})
|
|
204
|
+
.then(resume);
|
|
205
|
+
});
|
|
178
206
|
};
|
|
179
207
|
cdp.debugger.on("paused", debuggerPausedFn);
|
|
180
208
|
await cdp.page.addScriptToEvaluateOnNewDocument(cdpSessionId, { source: scriptToEvaluateOnNewDocument });
|
|
@@ -188,6 +216,9 @@ const startSelectivity = async (browser) => {
|
|
|
188
216
|
]);
|
|
189
217
|
cdp.debugger.off("paused", debuggerPausedFn);
|
|
190
218
|
cdp.target.detachFromTarget(cdpSessionId).catch(() => { });
|
|
219
|
+
if (!drop && pageSwitchError) {
|
|
220
|
+
throw pageSwitchError;
|
|
221
|
+
}
|
|
191
222
|
if (jsDependenciesPromise.status === "rejected") {
|
|
192
223
|
throw jsDependenciesPromise.reason;
|
|
193
224
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,59 @@
|
|
|
1
1
|
import type { CDP } from "..";
|
|
2
2
|
import type { CDPSessionId } from "../types";
|
|
3
3
|
import type { SelectivityMapSourceMapUrlFn } from "../../../config/types";
|
|
4
|
+
/**
|
|
5
|
+
* CDP "scriptId" is NOT stable across a test: it is reused for different scripts over time (a cross-process
|
|
6
|
+
* navigation restarts the counter; bfcache restore re-issues the previous document's ids; freed ids get reassigned
|
|
7
|
+
* to new scripts). "Profiler.takePreciseCoverage" reports only the raw "scriptId", with no way to tell which script
|
|
8
|
+
* a given id currently means. Therefore coverage can only be attributed correctly if it is resolved WHILE the
|
|
9
|
+
* scripts are still live and the "scriptId -> source" mapping is current.
|
|
10
|
+
*
|
|
11
|
+
* The orchestration in index.ts pauses the renderer at two boundaries and drives this class:
|
|
12
|
+
* - on "beforeunload": takeCoverageSnapshot() — resolve the leaving page while its isolate is still alive
|
|
13
|
+
* (required for cross-process navigation, where the old isolate is gone by the time the next document starts);
|
|
14
|
+
* - at the new document start (and bfcache "pageshow"): flushPage() — resolve whatever is left of the previous
|
|
15
|
+
* page (same-process, incl. code that ran during unload), then RESET precise coverage and CLEAR the script maps
|
|
16
|
+
* so the next page parses into an empty map and its coverage window cannot mix with the previous page's.
|
|
17
|
+
* Because the maps are cleared at every page boundary, plain "scriptId" keys are unambiguous within a page.
|
|
18
|
+
*/
|
|
4
19
|
export declare class JSSelectivity {
|
|
5
20
|
private readonly _cdp;
|
|
6
21
|
private readonly _sessionId;
|
|
7
22
|
private readonly _sourceRoot;
|
|
8
23
|
private readonly _mapSourceMapUrl;
|
|
9
24
|
private _debuggerOnScriptParsedFn;
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
|
|
25
|
+
private _scriptsSource;
|
|
26
|
+
private _scriptsSourceMap;
|
|
27
|
+
private _scriptIdToSourceUrl;
|
|
28
|
+
private _scriptIdToSourceMapUrl;
|
|
29
|
+
/** Last seen content hash per "scriptId" — used to detect a "scriptId" reused for a different script */
|
|
30
|
+
private _scriptIdToHash;
|
|
31
|
+
/** Source files collected across all pages of the current test */
|
|
32
|
+
private readonly _dependingSourceFiles;
|
|
15
33
|
constructor(cdp: CDP, sessionId: CDPSessionId, sourceRoot: string, mapSourceMapUrl: SelectivityMapSourceMapUrlFn | null);
|
|
16
34
|
private _processScript;
|
|
17
35
|
private _ensureScriptsAreLoading;
|
|
18
36
|
private _waitForLoadingScripts;
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the given coverage into original source files and accumulates them into "_dependingSourceFiles".
|
|
39
|
+
* Must run while the "scriptId -> source" maps still describe the scripts the coverage was taken from
|
|
40
|
+
* (i.e. before the page is navigated away and the maps are cleared).
|
|
41
|
+
*/
|
|
42
|
+
private _resolveCoverageToDeps;
|
|
19
43
|
start(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Called on "beforeunload", while the leaving page is still alive (its isolate not yet destroyed). Resolves the
|
|
46
|
+
* page's coverage into dependencies. Does NOT reset coverage or clear maps — that happens later, at the next
|
|
47
|
+
* page boundary (flushPage), once the leaving page has fully finished executing.
|
|
48
|
+
*/
|
|
20
49
|
takeCoverageSnapshot(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Called at a page boundary — the new document's start, and on bfcache "pageshow" — while the renderer is paused
|
|
52
|
+
* before the incoming page's scripts run. Resolves whatever is left of the previous page (same-process code that
|
|
53
|
+
* ran during unload), then RESETS precise coverage and CLEARS the script maps. This guarantees the next page's
|
|
54
|
+
* coverage window and "scriptId" namespace start empty, so reused ids cannot be mistaken for the previous page's.
|
|
55
|
+
*/
|
|
56
|
+
flushPage(): Promise<void>;
|
|
21
57
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
22
58
|
stop(drop?: boolean): Promise<Set<string> | null>;
|
|
23
59
|
}
|
|
@@ -8,9 +8,25 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
const fs_cache_1 = require("./fs-cache");
|
|
9
9
|
const debug_1 = require("./debug");
|
|
10
10
|
const SOURCE_CODE_EXTENSIONS = [".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs", ".mts", ".cts"];
|
|
11
|
+
const PRECISE_COVERAGE_PARAMS = { callCount: false, detailed: false, allowTriggeredUpdates: false };
|
|
11
12
|
const isSourceCodeFile = (sourceFileName) => {
|
|
12
13
|
return SOURCE_CODE_EXTENSIONS.some(ext => sourceFileName.endsWith(ext));
|
|
13
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* CDP "scriptId" is NOT stable across a test: it is reused for different scripts over time (a cross-process
|
|
17
|
+
* navigation restarts the counter; bfcache restore re-issues the previous document's ids; freed ids get reassigned
|
|
18
|
+
* to new scripts). "Profiler.takePreciseCoverage" reports only the raw "scriptId", with no way to tell which script
|
|
19
|
+
* a given id currently means. Therefore coverage can only be attributed correctly if it is resolved WHILE the
|
|
20
|
+
* scripts are still live and the "scriptId -> source" mapping is current.
|
|
21
|
+
*
|
|
22
|
+
* The orchestration in index.ts pauses the renderer at two boundaries and drives this class:
|
|
23
|
+
* - on "beforeunload": takeCoverageSnapshot() — resolve the leaving page while its isolate is still alive
|
|
24
|
+
* (required for cross-process navigation, where the old isolate is gone by the time the next document starts);
|
|
25
|
+
* - at the new document start (and bfcache "pageshow"): flushPage() — resolve whatever is left of the previous
|
|
26
|
+
* page (same-process, incl. code that ran during unload), then RESET precise coverage and CLEAR the script maps
|
|
27
|
+
* so the next page parses into an empty map and its coverage window cannot mix with the previous page's.
|
|
28
|
+
* Because the maps are cleared at every page boundary, plain "scriptId" keys are unambiguous within a page.
|
|
29
|
+
*/
|
|
14
30
|
class JSSelectivity {
|
|
15
31
|
constructor(cdp, sessionId, sourceRoot, mapSourceMapUrl) {
|
|
16
32
|
this._debuggerOnScriptParsedFn = null;
|
|
@@ -18,16 +34,30 @@ class JSSelectivity {
|
|
|
18
34
|
this._scriptsSourceMap = {};
|
|
19
35
|
this._scriptIdToSourceUrl = {};
|
|
20
36
|
this._scriptIdToSourceMapUrl = {};
|
|
21
|
-
|
|
37
|
+
/** Last seen content hash per "scriptId" — used to detect a "scriptId" reused for a different script */
|
|
38
|
+
this._scriptIdToHash = {};
|
|
39
|
+
/** Source files collected across all pages of the current test */
|
|
40
|
+
this._dependingSourceFiles = new Set();
|
|
22
41
|
this._cdp = cdp;
|
|
23
42
|
this._sessionId = sessionId;
|
|
24
43
|
this._sourceRoot = sourceRoot;
|
|
25
44
|
this._mapSourceMapUrl = mapSourceMapUrl;
|
|
26
45
|
}
|
|
27
|
-
_processScript({ scriptId, url, sourceMapURL }, cdpSessionId) {
|
|
46
|
+
_processScript({ scriptId, url, sourceMapURL, hash }, cdpSessionId) {
|
|
28
47
|
if (!this._sessionId || cdpSessionId !== this._sessionId) {
|
|
29
48
|
return;
|
|
30
49
|
}
|
|
50
|
+
// A "scriptId" can be reused for a DIFFERENT script within a single page window (a cross-process forward
|
|
51
|
+
// navigation may restart ids before the next boundary clears the maps). Detect reuse by content hash and drop
|
|
52
|
+
// the now-stale mapping, so the "||=" below repopulates it for the new script instead of keeping the old one.
|
|
53
|
+
const previousHash = this._scriptIdToHash[scriptId];
|
|
54
|
+
if (previousHash !== undefined && previousHash !== hash) {
|
|
55
|
+
delete this._scriptsSource[scriptId];
|
|
56
|
+
delete this._scriptsSourceMap[scriptId];
|
|
57
|
+
delete this._scriptIdToSourceUrl[scriptId];
|
|
58
|
+
delete this._scriptIdToSourceMapUrl[scriptId];
|
|
59
|
+
}
|
|
60
|
+
this._scriptIdToHash[scriptId] = hash;
|
|
31
61
|
this._scriptIdToSourceUrl[scriptId] ||= url;
|
|
32
62
|
if (!url || !sourceMapURL || url.startsWith("chrome-error://")) {
|
|
33
63
|
this._scriptsSource[scriptId] ||= null;
|
|
@@ -167,21 +197,95 @@ class JSSelectivity {
|
|
|
167
197
|
Promise.allSettled(Object.values(this._scriptsSourceMap)),
|
|
168
198
|
]);
|
|
169
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Resolves the given coverage into original source files and accumulates them into "_dependingSourceFiles".
|
|
202
|
+
* Must run while the "scriptId -> source" maps still describe the scripts the coverage was taken from
|
|
203
|
+
* (i.e. before the page is navigated away and the maps are cleared).
|
|
204
|
+
*/
|
|
205
|
+
async _resolveCoverageToDeps(coverageScripts) {
|
|
206
|
+
const grouppedByScriptCoverage = (0, lodash_1.groupBy)(coverageScripts, "scriptId");
|
|
207
|
+
const scriptIds = Object.keys(grouppedByScriptCoverage);
|
|
208
|
+
await Promise.all(scriptIds.map(async (scriptId) => {
|
|
209
|
+
const [source, sourceMaps] = await Promise.all([
|
|
210
|
+
this._scriptsSource[scriptId],
|
|
211
|
+
this._scriptsSourceMap[scriptId],
|
|
212
|
+
]);
|
|
213
|
+
const sourceMapUrl = this._scriptIdToSourceMapUrl[scriptId];
|
|
214
|
+
// Every "scriptId" has only one uniq "url"
|
|
215
|
+
const sourceUrl = this._scriptIdToSourceUrl[scriptId] || grouppedByScriptCoverage[scriptId][0].url;
|
|
216
|
+
// Function was called, but source maps were not generated for the file
|
|
217
|
+
// Or its anonymous script, without source url
|
|
218
|
+
if (!source || !sourceMaps || !sourceUrl) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (source instanceof Error) {
|
|
222
|
+
throw new Error([`JS Selectivity: Couldn't load source code from ${sourceUrl}:`, String(source)].join("\n"));
|
|
223
|
+
}
|
|
224
|
+
if (sourceMaps instanceof Error) {
|
|
225
|
+
throw new Error([`JS Selectivity: Couldn't load source maps from ${sourceMapUrl}`, String(sourceMaps)].join("\n"));
|
|
226
|
+
}
|
|
227
|
+
if ((0, utils_1.isCachedOnFs)(sourceMaps) && !sourceMapUrl) {
|
|
228
|
+
throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
|
|
229
|
+
}
|
|
230
|
+
const [sourceString, sourceMapsString] = await Promise.all([
|
|
231
|
+
(0, utils_1.isCachedOnFs)(source) ? (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceUrl) : source,
|
|
232
|
+
(0, utils_1.isCachedOnFs)(sourceMaps)
|
|
233
|
+
? (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
|
|
234
|
+
: sourceMaps,
|
|
235
|
+
]);
|
|
236
|
+
if (!sourceString || !sourceMapsString) {
|
|
237
|
+
throw new Error(`JS Selectivity: fs-cache is broken for ${sourceUrl}`);
|
|
238
|
+
}
|
|
239
|
+
const parsedSourceMapRanges = await (0, utils_1.parseSourceMapRanges)(sourceString, sourceMapsString, this._sourceRoot);
|
|
240
|
+
const dependingSourceFiles = (0, utils_1.extractSourceFilesDeps)(parsedSourceMapRanges, grouppedByScriptCoverage[scriptId], isSourceCodeFile);
|
|
241
|
+
for (const sourceFile of dependingSourceFiles.values()) {
|
|
242
|
+
this._dependingSourceFiles.add(sourceFile);
|
|
243
|
+
}
|
|
244
|
+
}));
|
|
245
|
+
}
|
|
170
246
|
async start() {
|
|
171
247
|
const debuggerOnScriptParsedFn = (this._debuggerOnScriptParsedFn = this._processScript.bind(this));
|
|
172
248
|
const sessionId = this._sessionId;
|
|
173
249
|
this._cdp.debugger.on("scriptParsed", debuggerOnScriptParsedFn);
|
|
174
|
-
await this._cdp.profiler.startPreciseCoverage(sessionId,
|
|
175
|
-
callCount: false,
|
|
176
|
-
detailed: false,
|
|
177
|
-
allowTriggeredUpdates: false,
|
|
178
|
-
});
|
|
250
|
+
await this._cdp.profiler.startPreciseCoverage(sessionId, PRECISE_COVERAGE_PARAMS);
|
|
179
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Called on "beforeunload", while the leaving page is still alive (its isolate not yet destroyed). Resolves the
|
|
254
|
+
* page's coverage into dependencies. Does NOT reset coverage or clear maps — that happens later, at the next
|
|
255
|
+
* page boundary (flushPage), once the leaving page has fully finished executing.
|
|
256
|
+
*/
|
|
180
257
|
async takeCoverageSnapshot() {
|
|
181
258
|
const coveragePart = await this._cdp.profiler.takePreciseCoverage(this._sessionId);
|
|
182
259
|
this._ensureScriptsAreLoading(coveragePart.result);
|
|
183
260
|
await this._waitForLoadingScripts();
|
|
184
|
-
|
|
261
|
+
// Missing a dependency is worse than failing the test, so resolution errors are propagated (and turned into a
|
|
262
|
+
// test failure by the orchestrator in index.ts), never swallowed into a partial dump.
|
|
263
|
+
await this._resolveCoverageToDeps(coveragePart.result);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Called at a page boundary — the new document's start, and on bfcache "pageshow" — while the renderer is paused
|
|
267
|
+
* before the incoming page's scripts run. Resolves whatever is left of the previous page (same-process code that
|
|
268
|
+
* ran during unload), then RESETS precise coverage and CLEARS the script maps. This guarantees the next page's
|
|
269
|
+
* coverage window and "scriptId" namespace start empty, so reused ids cannot be mistaken for the previous page's.
|
|
270
|
+
*/
|
|
271
|
+
async flushPage() {
|
|
272
|
+
const coveragePart = await this._cdp.profiler.takePreciseCoverage(this._sessionId);
|
|
273
|
+
this._ensureScriptsAreLoading(coveragePart.result);
|
|
274
|
+
await this._waitForLoadingScripts();
|
|
275
|
+
// Missing a dependency is worse than failing the test, so resolution and coverage-reset errors are
|
|
276
|
+
// propagated (turned into a test failure by index.ts), never swallowed into a partial dump.
|
|
277
|
+
await this._resolveCoverageToDeps(coveragePart.result);
|
|
278
|
+
// Reset coverage so the next page's window starts empty (a persisting same-process isolate would otherwise
|
|
279
|
+
// keep re-reporting this page's scripts under ids that the next page reuses).
|
|
280
|
+
await this._cdp.profiler.stopPreciseCoverage(this._sessionId);
|
|
281
|
+
await this._cdp.profiler.startPreciseCoverage(this._sessionId, PRECISE_COVERAGE_PARAMS);
|
|
282
|
+
// Clear the script maps so the next page parses into an empty namespace and reused "scriptId"s can't hit a
|
|
283
|
+
// stale mapping from the previous page.
|
|
284
|
+
this._scriptsSource = {};
|
|
285
|
+
this._scriptsSourceMap = {};
|
|
286
|
+
this._scriptIdToSourceUrl = {};
|
|
287
|
+
this._scriptIdToSourceMapUrl = {};
|
|
288
|
+
this._scriptIdToHash = {};
|
|
185
289
|
}
|
|
186
290
|
/** @param drop only performs cleanup without providing actual deps. Should be "true" if test is failed */
|
|
187
291
|
async stop(drop) {
|
|
@@ -190,49 +294,10 @@ class JSSelectivity {
|
|
|
190
294
|
return null;
|
|
191
295
|
}
|
|
192
296
|
const coverageLastPart = await this._cdp.profiler.takePreciseCoverage(this._sessionId);
|
|
193
|
-
const coverageScripts = [...this._coverageResult, ...coverageLastPart.result];
|
|
194
297
|
this._ensureScriptsAreLoading(coverageLastPart.result);
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
await Promise.all(scriptIds.map(async (scriptId) => {
|
|
199
|
-
const [source, sourceMaps] = await Promise.all([
|
|
200
|
-
this._scriptsSource[scriptId],
|
|
201
|
-
this._scriptsSourceMap[scriptId],
|
|
202
|
-
]);
|
|
203
|
-
const sourceMapUrl = this._scriptIdToSourceMapUrl[scriptId];
|
|
204
|
-
// Every "scriptId" has only one uniq "url"
|
|
205
|
-
const sourceUrl = this._scriptIdToSourceUrl[scriptId] || grouppedByScriptCoverage[scriptId][0].url;
|
|
206
|
-
// Function was called, but source maps were not generated for the file
|
|
207
|
-
// Or its anonymous script, without source url
|
|
208
|
-
if (!source || !sourceMaps || !sourceUrl) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
if (source instanceof Error) {
|
|
212
|
-
throw new Error([`JS Selectivity: Couldn't load source code from ${sourceUrl}:`, String(source)].join("\n"));
|
|
213
|
-
}
|
|
214
|
-
if (sourceMaps instanceof Error) {
|
|
215
|
-
throw new Error([`JS Selectivity: Couldn't load source maps from ${sourceMapUrl}`, String(sourceMaps)].join("\n"));
|
|
216
|
-
}
|
|
217
|
-
if ((0, utils_1.isCachedOnFs)(sourceMaps) && !sourceMapUrl) {
|
|
218
|
-
throw new Error("Assertation failed: souce map url has to present if source maps are fs-cached");
|
|
219
|
-
}
|
|
220
|
-
const [sourceString, sourceMapsString] = await Promise.all([
|
|
221
|
-
(0, utils_1.isCachedOnFs)(source) ? (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceUrl) : source,
|
|
222
|
-
(0, utils_1.isCachedOnFs)(sourceMaps)
|
|
223
|
-
? (0, fs_cache_1.getCachedSelectivityFile)(fs_cache_1.CacheType.Asset, sourceMapUrl)
|
|
224
|
-
: sourceMaps,
|
|
225
|
-
]);
|
|
226
|
-
if (!sourceString || !sourceMapsString) {
|
|
227
|
-
throw new Error(`JS Selectivity: fs-cache is broken for ${sourceUrl}`);
|
|
228
|
-
}
|
|
229
|
-
const parsedSourceMapRanges = await (0, utils_1.parseSourceMapRanges)(sourceString, sourceMapsString, this._sourceRoot);
|
|
230
|
-
const dependingSourceFiles = (0, utils_1.extractSourceFilesDeps)(parsedSourceMapRanges, grouppedByScriptCoverage[scriptId], isSourceCodeFile);
|
|
231
|
-
for (const sourceFile of dependingSourceFiles.values()) {
|
|
232
|
-
totalDependingSourceFiles.add(sourceFile);
|
|
233
|
-
}
|
|
234
|
-
}));
|
|
235
|
-
return totalDependingSourceFiles;
|
|
298
|
+
await this._waitForLoadingScripts();
|
|
299
|
+
await this._resolveCoverageToDeps(coverageLastPart.result);
|
|
300
|
+
return this._dependingSourceFiles;
|
|
236
301
|
}
|
|
237
302
|
finally {
|
|
238
303
|
this._debuggerOnScriptParsedFn && this._cdp.debugger.off("scriptParsed", this._debuggerOnScriptParsedFn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/js-selectivity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"js-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/js-selectivity.ts"],"names":[],"mappings":"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"}
|
package/build/src/testplane.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { BaseTestplane } from "./base-testplane";
|
|
|
3
3
|
import type { MainRunner } from "./runner";
|
|
4
4
|
import { TestCollection } from "./test-collection";
|
|
5
5
|
import { ConfigInput } from "./config/types";
|
|
6
|
-
import { MasterEventHandler, Test, TestResult } from "./types";
|
|
6
|
+
import { MasterEventHandler, Test, TestResult, WorkerEventHandler } from "./types";
|
|
7
7
|
import { TagFilter } from "./utils/cli";
|
|
8
8
|
import { ViteServer } from "./runner/browser-env/vite/server";
|
|
9
9
|
import { TestsTracker } from "./runner/tests-tracker";
|
|
@@ -45,6 +45,11 @@ export interface ReadTestsOpts extends Pick<RunOpts, "tag" | "browsers" | "sets"
|
|
|
45
45
|
failed: FailedListItem[];
|
|
46
46
|
runnableOpts?: RunnableOpts;
|
|
47
47
|
}
|
|
48
|
+
interface WorkerEventEmitter<T extends BaseTestplane> {
|
|
49
|
+
on: WorkerEventHandler<T>;
|
|
50
|
+
once: WorkerEventHandler<T>;
|
|
51
|
+
prependListener: WorkerEventHandler<T>;
|
|
52
|
+
}
|
|
48
53
|
export interface Testplane {
|
|
49
54
|
on: MasterEventHandler<this>;
|
|
50
55
|
once: MasterEventHandler<this>;
|
|
@@ -69,7 +74,7 @@ export declare class Testplane extends BaseTestplane {
|
|
|
69
74
|
isFailed(): boolean;
|
|
70
75
|
protected _fail(): void;
|
|
71
76
|
protected _addFailedTest(result: TestResult): void;
|
|
72
|
-
isWorker():
|
|
77
|
+
isWorker(): this is this & WorkerEventEmitter<this>;
|
|
73
78
|
private _handleError;
|
|
74
79
|
halt(err: Error, timeout?: number, logError?: boolean): void;
|
|
75
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testplane.js","sourceRoot":"","sources":["../../src/testplane.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAuB;AACvB,wDAA0B;AAC1B,mCAA+C;AAC/C,qDAAiD;AAEjD,6EAAoD;AACpD,qCAA6E;AAC7E,2DAAyC;AACzC,sEAA6C;AAC7C,+CAA2C;AAC3C,uDAAmD;AACnD,6CAAuD;AACvD,2CAA4C;AAC5C,uDAAyC;AACzC,2CAAkD;AAClD,6CAA6C;AAG7C,yDAA2D;AAC3D,2DAAiG;AAEjG,6DAA8D;AAC9D,+DAAwF;AACxF,0DAA+F;AAC/F,kFAA6E;
|
|
1
|
+
{"version":3,"file":"testplane.js","sourceRoot":"","sources":["../../src/testplane.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,11 @@ export interface BrowserInfo {
|
|
|
28
28
|
sessionId: string;
|
|
29
29
|
}
|
|
30
30
|
export type AsyncSessionEventCallback = (browser: WebdriverIO.Browser, browserInfo: BrowserInfo) => Promise<void> | void;
|
|
31
|
+
export interface NewBrowserInfo {
|
|
32
|
+
browserId: string;
|
|
33
|
+
browserVersion: string;
|
|
34
|
+
}
|
|
35
|
+
export type NewBrowserEventCallback = (browser: WebdriverIO.Browser, browserInfo: NewBrowserInfo) => Promise<void> | void;
|
|
31
36
|
export interface ImageSize {
|
|
32
37
|
width: number;
|
|
33
38
|
height: number;
|
|
@@ -245,7 +250,7 @@ export type WorkerEventHandler<T extends BaseTestplane> = {
|
|
|
245
250
|
state: string;
|
|
246
251
|
refImg: RefImageInfo;
|
|
247
252
|
}) => void): T;
|
|
248
|
-
(event: Events["NEW_BROWSER"], callback:
|
|
253
|
+
(event: Events["NEW_BROWSER"], callback: NewBrowserEventCallback): T;
|
|
249
254
|
};
|
|
250
255
|
export type CookieSameSite = "Strict" | "Lax" | "None";
|
|
251
256
|
export type CookiePriority = "Low" | "Medium" | "High";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAoHA,IAAY,WAYX;AAZD,WAAY,WAAW;IACnB,yBAAU,CAAA;IACV,yBAAU,CAAA;IACV,0BAAW,CAAA;IACX,6BAAc,CAAA;IACd,+BAAgB,CAAA;IAChB,6BAAc,CAAA;IACd,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,6BAAc,CAAA;IACd,6BAAc,CAAA;IACd,wBAAS,CAAA;AACb,CAAC,EAZW,WAAW,2BAAX,WAAW,QAYtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testplane",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.12",
|
|
4
4
|
"description": "Tests framework based on mocha and wdio",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"lint": "eslint --cache . && prettier --check .",
|
|
31
31
|
"reformat": "eslint --fix . && prettier --write .",
|
|
32
32
|
"prettier-watch": "onchange '**' --exclude-path .prettierignore -- prettier --write {{changed}}",
|
|
33
|
-
"test-unit": "node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|e2e|browser-env|fixtures)/**/*.[jt]s\"",
|
|
34
|
-
"test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|browser-env|e2e)/**/*.[jt]s\"",
|
|
33
|
+
"test-unit": "node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|e2e|browser-env|fixtures|type-tests)/**/*.[jt]s\"",
|
|
34
|
+
"test-unit:coverage": "c8 --all --src=src --reporter=html --reporter=text-summary --exclude=\"build/**\" --exclude=\"test/**\" --exclude=\"**/*.d.ts\" node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha \"test/!(integration|browser-env|e2e|type-tests)/**/*.[jt]s\"",
|
|
35
35
|
"test-unit:generate-fixtures": "TS_NODE_PROJECT=test/tsconfig.json node -r ts-node/register -r tsconfig-paths/register test/src/browser/screen-shooter/composite-image/fixtures/generate.ts generate",
|
|
36
36
|
"test": "npm run test-unit && npm run check-types && npm run lint",
|
|
37
37
|
"test-integration": "TS_NODE_TRANSPILE_ONLY=1 node scripts/run-node-without-type-stripping.js ./node_modules/mocha/bin/_mocha -r ts-node/register test/integration/*/**",
|