testplane 8.35.1 → 8.35.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/build/package.json +3 -1
- package/build/src/browser/cdp/selectivity/debug.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/debug.js +9 -0
- package/build/src/browser/cdp/selectivity/debug.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.d.ts +6 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js +81 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-reader.d.ts +17 -0
- package/build/src/browser/cdp/selectivity/hash-reader.js +70 -0
- package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -0
- package/build/src/browser/cdp/selectivity/{file-hash-writer.d.ts → hash-writer.d.ts} +7 -6
- package/build/src/browser/cdp/selectivity/hash-writer.js +141 -0
- package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -0
- package/build/src/browser/cdp/selectivity/index.d.ts +11 -0
- package/build/src/browser/cdp/selectivity/index.js +100 -4
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.d.ts +10 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +41 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +22 -11
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +1 -0
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js +29 -9
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/types.d.ts +5 -0
- package/build/src/browser/cdp/selectivity/utils.d.ts +8 -1
- package/build/src/browser/cdp/selectivity/utils.js +66 -3
- package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
- package/build/src/bundle/cjs/index.js +207 -108
- package/build/src/config/defaults.d.ts +1 -0
- package/build/src/config/defaults.js +1 -0
- package/build/src/config/defaults.js.map +1 -1
- package/build/src/config/types.d.ts +1 -0
- package/build/src/runner/index.js +24 -1
- package/build/src/runner/index.js.map +1 -1
- package/build/src/testplane.js +4 -0
- package/build/src/testplane.js.map +1 -1
- package/build/src/utils/typescript.js +3 -0
- package/build/src/utils/typescript.js.map +1 -1
- package/build/src/worker/runner/index.js +7 -5
- package/build/src/worker/runner/index.js.map +1 -1
- package/package.json +3 -1
- package/build/src/browser/cdp/selectivity/file-hash-provider.d.ts +0 -4
- package/build/src/browser/cdp/selectivity/file-hash-provider.js +0 -28
- package/build/src/browser/cdp/selectivity/file-hash-provider.js.map +0 -1
- package/build/src/browser/cdp/selectivity/file-hash-writer.js +0 -123
- package/build/src/browser/cdp/selectivity/file-hash-writer.js.map +0 -1
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getTestDependenciesWriter = exports.TestDependenciesWriter = void 0;
|
|
7
7
|
const lodash_1 = require("lodash");
|
|
8
|
-
const
|
|
8
|
+
const proper_lockfile_1 = __importDefault(require("proper-lockfile"));
|
|
9
9
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
10
|
const utils_1 = require("./utils");
|
|
11
11
|
const json_utils_1 = require("./json-utils");
|
|
@@ -32,7 +32,7 @@ const areDepsSame = (browserDepsA, browserDepsB) => {
|
|
|
32
32
|
class TestDependenciesWriter {
|
|
33
33
|
constructor(selectivityRootPath, compression) {
|
|
34
34
|
this._directoryCreated = false;
|
|
35
|
-
this._selectivityTestsPath =
|
|
35
|
+
this._selectivityTestsPath = (0, utils_1.getSelectivityTestsPath)(selectivityRootPath);
|
|
36
36
|
this._compression = compression;
|
|
37
37
|
}
|
|
38
38
|
async saveFor(test, browserDeps, testplaneDeps) {
|
|
@@ -40,19 +40,30 @@ class TestDependenciesWriter {
|
|
|
40
40
|
await fs_extra_1.default.ensureDir(this._selectivityTestsPath);
|
|
41
41
|
this._directoryCreated = true;
|
|
42
42
|
}
|
|
43
|
-
const testDepsPath =
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
const testDepsPath = (0, utils_1.getTestDependenciesPath)(this._selectivityTestsPath, test);
|
|
44
|
+
const releaseLock = await proper_lockfile_1.default.lock(testDepsPath, {
|
|
45
|
+
stale: 5000,
|
|
46
|
+
update: 1000,
|
|
47
|
+
retries: { minTimeout: 100, maxTimeout: 1000, retries: 15 },
|
|
48
|
+
realpath: false,
|
|
49
|
+
});
|
|
50
|
+
try {
|
|
51
|
+
const testDeps = await (0, utils_1.readTestDependencies)(this._selectivityTestsPath, test, this._compression);
|
|
52
|
+
if (areDepsSame(testDeps[test.browserId]?.browser, browserDeps) &&
|
|
53
|
+
areDepsSame(testDeps[test.browserId]?.testplane, testplaneDeps)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
testDeps[test.browserId] = { browser: browserDeps, testplane: testplaneDeps };
|
|
57
|
+
(0, utils_1.shallowSortObject)(testDeps);
|
|
58
|
+
await (0, json_utils_1.writeJsonWithCompression)(testDepsPath, testDeps, this._compression);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
await releaseLock();
|
|
48
62
|
}
|
|
49
|
-
testDeps[test.browserId] = { browser: browserDeps, testplane: testplaneDeps };
|
|
50
|
-
(0, utils_1.shallowSortObject)(testDeps);
|
|
51
|
-
await (0, json_utils_1.writeJsonWithCompression)(testDepsPath, testDeps, this._compression);
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
65
|
exports.TestDependenciesWriter = TestDependenciesWriter;
|
|
55
66
|
exports.getTestDependenciesWriter = (0, lodash_1.memoize)((selectivityRootPath, compression) => {
|
|
56
67
|
return new TestDependenciesWriter(selectivityRootPath, compression);
|
|
57
|
-
});
|
|
68
|
+
}, (selectivityRootPath, compression) => `${selectivityRootPath}#${compression}`);
|
|
58
69
|
//# sourceMappingURL=test-dependencies-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-dependencies-writer.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/test-dependencies-writer.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"test-dependencies-writer.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/test-dependencies-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,3 +2,4 @@ export declare const disableCollectingTestplaneDependencies: () => void;
|
|
|
2
2
|
export declare const enableCollectingTestplaneDependencies: () => void;
|
|
3
3
|
export declare const getCollectedTestplaneDependencies: () => string[];
|
|
4
4
|
export declare const runWithTestplaneDependenciesCollecting: <T>(fn: () => Promise<T>) => Promise<T>;
|
|
5
|
+
export declare const readTestFileWithTestplaneDependenciesCollecting: <T>(file: string, fn: () => Promise<T>) => Promise<T>;
|
|
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.runWithTestplaneDependenciesCollecting = exports.getCollectedTestplaneDependencies = exports.enableCollectingTestplaneDependencies = exports.disableCollectingTestplaneDependencies = void 0;
|
|
6
|
+
exports.readTestFileWithTestplaneDependenciesCollecting = exports.runWithTestplaneDependenciesCollecting = exports.getCollectedTestplaneDependencies = exports.enableCollectingTestplaneDependencies = exports.disableCollectingTestplaneDependencies = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const module_1 = require("module");
|
|
9
9
|
const async_hooks_1 = require("async_hooks");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
11
|
const TypedModule = module_1.Module;
|
|
11
12
|
const testDependenciesStorage = new async_hooks_1.AsyncLocalStorage();
|
|
13
|
+
const testFileDependenciesCache = new Map();
|
|
12
14
|
let disableCollectingDependenciesCb = null;
|
|
13
15
|
const disableCollectingTestplaneDependencies = () => {
|
|
14
16
|
if (disableCollectingDependenciesCb) {
|
|
@@ -21,24 +23,23 @@ const enableCollectingTestplaneDependencies = () => {
|
|
|
21
23
|
if (disableCollectingDependenciesCb) {
|
|
22
24
|
return;
|
|
23
25
|
}
|
|
24
|
-
const
|
|
26
|
+
const originalResolveFileName = TypedModule._resolveFilename;
|
|
25
27
|
disableCollectingDependenciesCb = () => {
|
|
26
|
-
TypedModule.
|
|
28
|
+
TypedModule._resolveFilename = originalResolveFileName;
|
|
27
29
|
};
|
|
28
|
-
TypedModule.
|
|
30
|
+
TypedModule._resolveFilename = function () {
|
|
31
|
+
// eslint-disable-next-line prefer-rest-params
|
|
32
|
+
const result = originalResolveFileName.apply(this, arguments);
|
|
29
33
|
try {
|
|
30
34
|
const store = disableCollectingDependenciesCb ? testDependenciesStorage.getStore() : null;
|
|
31
|
-
|
|
32
|
-
const absPath = store ? TypedModule._resolveFilename.apply(this, arguments) : null;
|
|
33
|
-
const relPath = absPath && path_1.default.isAbsolute(absPath) ? path_1.default.relative(process.cwd(), absPath) : null;
|
|
35
|
+
const relPath = result && path_1.default.isAbsolute(result) ? path_1.default.relative(process.cwd(), result) : null;
|
|
34
36
|
if (store && relPath) {
|
|
35
37
|
const posixRelPath = path_1.default.sep === path_1.default.posix.sep ? relPath : relPath.replaceAll(path_1.default.sep, path_1.default.posix.sep);
|
|
36
38
|
store.jsTestplaneDeps?.add(posixRelPath);
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
catch { } // eslint-disable-line no-empty
|
|
40
|
-
|
|
41
|
-
return originalModuleLoad.apply(this, arguments);
|
|
42
|
+
return result;
|
|
42
43
|
};
|
|
43
44
|
};
|
|
44
45
|
exports.enableCollectingTestplaneDependencies = enableCollectingTestplaneDependencies;
|
|
@@ -53,4 +54,23 @@ const runWithTestplaneDependenciesCollecting = (fn) => {
|
|
|
53
54
|
return testDependenciesStorage.run(store, fn);
|
|
54
55
|
};
|
|
55
56
|
exports.runWithTestplaneDependenciesCollecting = runWithTestplaneDependenciesCollecting;
|
|
57
|
+
const readTestFileWithTestplaneDependenciesCollecting = (file, fn) => {
|
|
58
|
+
if (!disableCollectingDependenciesCb) {
|
|
59
|
+
return fn();
|
|
60
|
+
}
|
|
61
|
+
const store = testDependenciesStorage.getStore();
|
|
62
|
+
const jsTestplaneDeps = store && store.jsTestplaneDeps;
|
|
63
|
+
if (!jsTestplaneDeps) {
|
|
64
|
+
return fn();
|
|
65
|
+
}
|
|
66
|
+
const cachedDependencies = testFileDependenciesCache.get(file);
|
|
67
|
+
if (cachedDependencies) {
|
|
68
|
+
cachedDependencies.forEach(dependency => jsTestplaneDeps.add(dependency));
|
|
69
|
+
return fn();
|
|
70
|
+
}
|
|
71
|
+
return fn().finally(() => {
|
|
72
|
+
testFileDependenciesCache.set(file, Array.from(jsTestplaneDeps).sort());
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
exports.readTestFileWithTestplaneDependenciesCollecting = readTestFileWithTestplaneDependenciesCollecting;
|
|
56
76
|
//# sourceMappingURL=testplane-selectivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mCAAiD;AACjD,6CAAgD;AAEhD,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"testplane-selectivity.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/testplane-selectivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,3 +13,8 @@ export declare const Compression: {
|
|
|
13
13
|
readonly ZSTD: "zstd";
|
|
14
14
|
};
|
|
15
15
|
export type SelectivityCompressionType = (typeof Compression)[keyof typeof Compression];
|
|
16
|
+
export type HashFileContents = {
|
|
17
|
+
files: Record<string, string>;
|
|
18
|
+
modules: Record<string, string>;
|
|
19
|
+
patterns: Record<string, string>;
|
|
20
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type RawSourceMap } from "source-map";
|
|
2
2
|
import type { CDPRuntime } from "../domains/runtime";
|
|
3
3
|
import type { CDPSessionId } from "../types";
|
|
4
|
-
import type { NormalizedDependencies } from "./types";
|
|
4
|
+
import type { HashFileContents, NormalizedDependencies, SelectivityCompressionType } from "./types";
|
|
5
|
+
import type { Test } from "../../../types";
|
|
5
6
|
/**
|
|
6
7
|
* Tries to fetch text by url from node.js, then falls back to "fetch" from browser, if node.js fetch fails
|
|
7
8
|
* @param url text url
|
|
@@ -39,3 +40,9 @@ export declare const transformSourceDependencies: (cssDependencies: string[], js
|
|
|
39
40
|
/** Merges two sorted deps array into one with uniq values */
|
|
40
41
|
export declare const mergeSourceDependencies: (a: NormalizedDependencies, b: NormalizedDependencies) => NormalizedDependencies;
|
|
41
42
|
export declare const shallowSortObject: (obj: Record<string, unknown>) => void;
|
|
43
|
+
export declare const getSelectivityHashesPath: (selectivityRootPath: string) => string;
|
|
44
|
+
export declare const readHashFileContents: (selectivityHashesPath: string, compression: SelectivityCompressionType) => Promise<HashFileContents>;
|
|
45
|
+
export declare const getSelectivityTestsPath: (selectivityRootPath: string) => string;
|
|
46
|
+
export declare const getTestDependenciesPath: (selectivityTestsPath: string, test: Test) => string;
|
|
47
|
+
/** @returns `Promise<Record<BrowserID, Record<DepType, NormalizedDependencies>>>` */
|
|
48
|
+
export declare const readTestDependencies: (selectivityTestsPath: string, test: Test, compression: SelectivityCompressionType) => Promise<Record<string, Record<string, NormalizedDependencies>>>;
|
|
@@ -1,16 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.shallowSortObject = exports.mergeSourceDependencies = exports.transformSourceDependencies = exports.hasProtocol = exports.extractSourceFilesDeps = exports.patchSourceMapSources = exports.fetchTextWithBrowserFallback = void 0;
|
|
29
|
+
exports.readTestDependencies = exports.getTestDependenciesPath = exports.getSelectivityTestsPath = exports.readHashFileContents = exports.getSelectivityHashesPath = exports.shallowSortObject = exports.mergeSourceDependencies = exports.transformSourceDependencies = exports.hasProtocol = exports.extractSourceFilesDeps = exports.patchSourceMapSources = exports.fetchTextWithBrowserFallback = void 0;
|
|
7
30
|
const lodash_1 = require("lodash");
|
|
8
31
|
const source_map_1 = require("source-map");
|
|
9
32
|
const fs_1 = __importDefault(require("fs"));
|
|
10
33
|
const path_1 = __importDefault(require("path"));
|
|
11
34
|
const url_1 = require("url");
|
|
35
|
+
const logger = __importStar(require("../../../utils/logger"));
|
|
12
36
|
const fs_2 = require("../../../utils/fs");
|
|
13
37
|
const constants_1 = require("./constants");
|
|
38
|
+
const json_utils_1 = require("./json-utils");
|
|
14
39
|
/**
|
|
15
40
|
* Tries to fetch text by url from node.js, then falls back to "fetch" from browser, if node.js fetch fails
|
|
16
41
|
* @param url text url
|
|
@@ -110,6 +135,17 @@ const hasProtocol = (fileUrlLikePath) => {
|
|
|
110
135
|
}
|
|
111
136
|
};
|
|
112
137
|
exports.hasProtocol = hasProtocol;
|
|
138
|
+
const getProtocol = (fileUrlLikePath) => {
|
|
139
|
+
if (!fileUrlLikePath.includes("://")) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
return new url_1.URL(fileUrlLikePath).protocol;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
113
149
|
const ensurePosixRelativeDependencyPathExists = (0, lodash_1.memoize)((posixRelativePath) => {
|
|
114
150
|
const relativePath = posixRelativePath.replaceAll(path_1.default.posix.sep, path_1.default.sep);
|
|
115
151
|
if (fs_1.default.existsSync(relativePath)) {
|
|
@@ -121,6 +157,9 @@ const ensurePosixRelativeDependencyPathExists = (0, lodash_1.memoize)((posixRela
|
|
|
121
157
|
"Configuring 'sourceRoot' in Testplane selectivity config also might help",
|
|
122
158
|
].join("\n"));
|
|
123
159
|
});
|
|
160
|
+
const warnUnsupportedProtocol = (0, lodash_1.memoize)((protocol, dependency) => {
|
|
161
|
+
logger.warn(`Selectivity: Ignoring dependencies of unsupported protocol "${protocol}" (example: "${dependency}")`);
|
|
162
|
+
});
|
|
124
163
|
/**
|
|
125
164
|
* @param cssDependencies SORTED uniq array of css dependenciy URI's
|
|
126
165
|
* @param jsDependencies SORTED uniq array of js dependenciy URI's
|
|
@@ -133,8 +172,10 @@ const transformSourceDependencies = (cssDependencies, jsDependencies) => {
|
|
|
133
172
|
const modules = [];
|
|
134
173
|
const classifyDependency = (dependency, typedResultArray) => {
|
|
135
174
|
dependency = decodeURIComponent((0, fs_2.softFileURLToPath)(dependency));
|
|
136
|
-
|
|
137
|
-
|
|
175
|
+
const protocol = getProtocol(dependency);
|
|
176
|
+
if (protocol) {
|
|
177
|
+
warnUnsupportedProtocol(protocol, dependency);
|
|
178
|
+
return;
|
|
138
179
|
}
|
|
139
180
|
const dependencyRelativePath = path_1.default.posix.relative(path_1.default.posix.resolve(), path_1.default.posix.resolve(dependency));
|
|
140
181
|
const nodeModulesLabelPos = dependencyRelativePath.indexOf(nodeModulesLabel);
|
|
@@ -237,4 +278,26 @@ const shallowSortObject = (obj) => {
|
|
|
237
278
|
}
|
|
238
279
|
};
|
|
239
280
|
exports.shallowSortObject = shallowSortObject;
|
|
281
|
+
const getSelectivityHashesPath = (selectivityRootPath) => path_1.default.join(selectivityRootPath, "hashes.json");
|
|
282
|
+
exports.getSelectivityHashesPath = getSelectivityHashesPath;
|
|
283
|
+
const readHashFileContents = (selectivityHashesPath, compression) => (0, json_utils_1.readJsonWithCompression)(selectivityHashesPath, compression, {
|
|
284
|
+
defaultValue: { files: {}, modules: {}, patterns: {} },
|
|
285
|
+
})
|
|
286
|
+
.catch(() => ({ files: {}, modules: {}, patterns: {} }))
|
|
287
|
+
.then(res => {
|
|
288
|
+
res.files ||= {};
|
|
289
|
+
res.modules ||= {};
|
|
290
|
+
res.patterns ||= {};
|
|
291
|
+
return res;
|
|
292
|
+
});
|
|
293
|
+
exports.readHashFileContents = readHashFileContents;
|
|
294
|
+
const getSelectivityTestsPath = (selectivityRootPath) => path_1.default.join(selectivityRootPath, "tests");
|
|
295
|
+
exports.getSelectivityTestsPath = getSelectivityTestsPath;
|
|
296
|
+
const getTestDependenciesPath = (selectivityTestsPath, test) => path_1.default.join(selectivityTestsPath, `${test.id}.json`);
|
|
297
|
+
exports.getTestDependenciesPath = getTestDependenciesPath;
|
|
298
|
+
/** @returns `Promise<Record<BrowserID, Record<DepType, NormalizedDependencies>>>` */
|
|
299
|
+
const readTestDependencies = (selectivityTestsPath, test, compression) => (0, json_utils_1.readJsonWithCompression)((0, exports.getTestDependenciesPath)(selectivityTestsPath, test), compression, {
|
|
300
|
+
defaultValue: {},
|
|
301
|
+
}).catch(() => ({}));
|
|
302
|
+
exports.readTestDependencies = readTestDependencies;
|
|
240
303
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/browser/cdp/selectivity/utils.ts"],"names":[],"mappings":"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"}
|