supercov 0.0.7 → 0.0.9
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 +18 -1
- package/dist/agentJson.d.ts +1 -1
- package/dist/agentJson.d.ts.map +1 -1
- package/dist/agentJson.js.map +1 -1
- package/dist/analyze.d.ts.map +1 -1
- package/dist/analyze.js +0 -1
- package/dist/analyze.js.map +1 -1
- package/dist/cli.js +62 -10
- package/dist/cli.js.map +1 -1
- package/dist/directInstrumenter.d.ts +1 -1
- package/dist/directInstrumenter.d.ts.map +1 -1
- package/dist/directInstrumenter.js +30 -6
- package/dist/directInstrumenter.js.map +1 -1
- package/dist/instrumenter.d.ts.map +1 -1
- package/dist/instrumenter.js +107 -33
- package/dist/instrumenter.js.map +1 -1
- package/dist/integrity.d.ts.map +1 -1
- package/dist/integrity.js +11 -0
- package/dist/integrity.js.map +1 -1
- package/dist/nodeAssert.d.ts +31 -0
- package/dist/nodeAssert.d.ts.map +1 -0
- package/dist/nodeAssert.js +30 -0
- package/dist/nodeAssert.js.map +1 -0
- package/dist/nodeAssertAdapter.d.ts +6 -0
- package/dist/nodeAssertAdapter.d.ts.map +1 -0
- package/dist/nodeAssertAdapter.js +94 -0
- package/dist/nodeAssertAdapter.js.map +1 -0
- package/dist/nodeAssertStrict.d.ts +31 -0
- package/dist/nodeAssertStrict.d.ts.map +1 -0
- package/dist/nodeAssertStrict.js +28 -0
- package/dist/nodeAssertStrict.js.map +1 -0
- package/dist/nodeAssertionInstrumenter.d.ts +8 -0
- package/dist/nodeAssertionInstrumenter.d.ts.map +1 -0
- package/dist/nodeAssertionInstrumenter.js +263 -0
- package/dist/nodeAssertionInstrumenter.js.map +1 -0
- package/dist/nodeTest.d.ts.map +1 -1
- package/dist/nodeTest.js +6 -2
- package/dist/nodeTest.js.map +1 -1
- package/dist/playwright.d.ts.map +1 -1
- package/dist/playwright.js +8 -18
- package/dist/playwright.js.map +1 -1
- package/dist/project.d.ts +1 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +4 -0
- package/dist/project.js.map +1 -1
- package/dist/query.d.ts +3 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +74 -11
- package/dist/query.js.map +1 -1
- package/dist/register.mjs +46 -5
- package/dist/register.mjs.map +1 -1
- package/dist/resolve-loader.d.mts.map +1 -1
- package/dist/resolve-loader.mjs +20 -0
- package/dist/resolve-loader.mjs.map +1 -1
- package/dist/runAnalysis.d.ts.map +1 -1
- package/dist/runAnalysis.js +37 -18
- package/dist/runAnalysis.js.map +1 -1
- package/dist/runnerEvidence.d.ts +2 -2
- package/dist/runnerEvidence.d.ts.map +1 -1
- package/dist/runnerEvidence.js +3 -2
- package/dist/runnerEvidence.js.map +1 -1
- package/dist/runtime.d.ts +37 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +713 -526
- package/dist/runtime.js.map +1 -1
- package/dist/runtimeIsolation.d.ts +3 -0
- package/dist/runtimeIsolation.d.ts.map +1 -0
- package/dist/runtimeIsolation.js +9 -0
- package/dist/runtimeIsolation.js.map +1 -0
- package/dist/sourceDiscovery.d.ts.map +1 -1
- package/dist/sourceDiscovery.js +11 -0
- package/dist/sourceDiscovery.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +4 -1
- package/dist/workspace.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { withNodeAssertionPhase } from "./runtime.js";
|
|
2
|
+
const ASSERTION_METHODS = new Set([
|
|
3
|
+
"deepEqual",
|
|
4
|
+
"deepStrictEqual",
|
|
5
|
+
"doesNotMatch",
|
|
6
|
+
"doesNotReject",
|
|
7
|
+
"doesNotThrow",
|
|
8
|
+
"equal",
|
|
9
|
+
"fail",
|
|
10
|
+
"ifError",
|
|
11
|
+
"match",
|
|
12
|
+
"notDeepEqual",
|
|
13
|
+
"notDeepStrictEqual",
|
|
14
|
+
"notEqual",
|
|
15
|
+
"notStrictEqual",
|
|
16
|
+
"ok",
|
|
17
|
+
"partialDeepStrictEqual",
|
|
18
|
+
"rejects",
|
|
19
|
+
"strictEqual",
|
|
20
|
+
"throws",
|
|
21
|
+
]);
|
|
22
|
+
function assertionSource() {
|
|
23
|
+
const lines = new Error().stack?.split("\n").slice(2) ?? [];
|
|
24
|
+
const entry = lines.find((line) => !/(?:nodeAssert|nodeAssertion|runtime)\.[cm]?[jt]s/.test(line) &&
|
|
25
|
+
!line.includes("node:internal"));
|
|
26
|
+
if (!entry)
|
|
27
|
+
return undefined;
|
|
28
|
+
return entry.trim().replace(/^at\s+/, "");
|
|
29
|
+
}
|
|
30
|
+
function wrapAssertion(original, operation) {
|
|
31
|
+
return new Proxy(original, {
|
|
32
|
+
apply(target, thisArgument, argumentsList) {
|
|
33
|
+
return withNodeAssertionPhase(operation, assertionSource(), () => Reflect.apply(target, thisArgument, argumentsList));
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function wrapAssertInstance(instance, operation) {
|
|
38
|
+
const cache = new Map();
|
|
39
|
+
return new Proxy(instance, {
|
|
40
|
+
get(target, property, receiver) {
|
|
41
|
+
const value = Reflect.get(target, property, receiver);
|
|
42
|
+
if (typeof value !== "function" || !ASSERTION_METHODS.has(String(property)))
|
|
43
|
+
return value;
|
|
44
|
+
const existing = cache.get(property);
|
|
45
|
+
if (existing)
|
|
46
|
+
return existing;
|
|
47
|
+
const wrapped = wrapAssertion(value.bind(target), `${operation}.${String(property)}`);
|
|
48
|
+
cache.set(property, wrapped);
|
|
49
|
+
return wrapped;
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function wrappedAssertConstructor(original, operation) {
|
|
54
|
+
return new Proxy(original, {
|
|
55
|
+
construct(target, argumentsList, newTarget) {
|
|
56
|
+
return wrapAssertInstance(Reflect.construct(target, argumentsList, newTarget), operation);
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export function createNodeAssertAdapter(native, moduleName) {
|
|
61
|
+
const adapter = wrapAssertion(native, `${moduleName}.ok`);
|
|
62
|
+
const nativeRecord = native;
|
|
63
|
+
for (const property of Reflect.ownKeys(nativeRecord)) {
|
|
64
|
+
if (["name", "length", "prototype", "arguments", "caller"].includes(String(property)))
|
|
65
|
+
continue;
|
|
66
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(nativeRecord, property);
|
|
67
|
+
if (!descriptor)
|
|
68
|
+
continue;
|
|
69
|
+
let value = descriptor.value;
|
|
70
|
+
if (typeof value === "function" && ASSERTION_METHODS.has(String(property)))
|
|
71
|
+
value = wrapAssertion(value, `${moduleName}.${String(property)}`);
|
|
72
|
+
else if (property === "Assert" && typeof value === "function")
|
|
73
|
+
value = wrappedAssertConstructor(value, `${moduleName}.Assert`);
|
|
74
|
+
try {
|
|
75
|
+
Reflect.defineProperty(adapter, property, {
|
|
76
|
+
...descriptor,
|
|
77
|
+
value,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Exotic builtin descriptors are not required for assertion dispatch.
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return adapter;
|
|
85
|
+
}
|
|
86
|
+
export function setStrictAssertAdapter(adapter, strict) {
|
|
87
|
+
Reflect.defineProperty(adapter, "strict", {
|
|
88
|
+
configurable: true,
|
|
89
|
+
enumerable: true,
|
|
90
|
+
value: strict,
|
|
91
|
+
writable: true,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=nodeAssertAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeAssertAdapter.js","sourceRoot":"","sources":["../src/nodeAssertAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import nativeAssert from "node:assert/strict";
|
|
2
|
+
declare const adapter: typeof nativeAssert;
|
|
3
|
+
export default adapter;
|
|
4
|
+
export declare const Assert: {
|
|
5
|
+
new (options?: nativeAssert.AssertOptions & {
|
|
6
|
+
strict?: true | undefined;
|
|
7
|
+
}): nativeAssert.AssertStrict;
|
|
8
|
+
new (options: nativeAssert.AssertOptions): nativeAssert.Assert;
|
|
9
|
+
};
|
|
10
|
+
export declare const AssertionError: typeof nativeAssert.AssertionError;
|
|
11
|
+
export declare const CallTracker: typeof nativeAssert.CallTracker;
|
|
12
|
+
export declare const deepEqual: typeof nativeAssert.deepStrictEqual;
|
|
13
|
+
export declare const deepStrictEqual: typeof nativeAssert.deepStrictEqual;
|
|
14
|
+
export declare const doesNotMatch: typeof nativeAssert.doesNotMatch;
|
|
15
|
+
export declare const doesNotReject: typeof nativeAssert.doesNotReject;
|
|
16
|
+
export declare const doesNotThrow: typeof nativeAssert.doesNotThrow;
|
|
17
|
+
export declare const equal: typeof nativeAssert.strictEqual;
|
|
18
|
+
export declare const fail: typeof nativeAssert.fail;
|
|
19
|
+
export declare const ifError: typeof nativeAssert.ifError;
|
|
20
|
+
export declare const match: typeof nativeAssert.match;
|
|
21
|
+
export declare const notDeepEqual: typeof nativeAssert.notDeepStrictEqual;
|
|
22
|
+
export declare const notDeepStrictEqual: typeof nativeAssert.notDeepStrictEqual;
|
|
23
|
+
export declare const notEqual: typeof nativeAssert.notStrictEqual;
|
|
24
|
+
export declare const notStrictEqual: typeof nativeAssert.notStrictEqual;
|
|
25
|
+
export declare const ok: typeof nativeAssert.ok;
|
|
26
|
+
export declare const partialDeepStrictEqual: typeof nativeAssert.partialDeepStrictEqual;
|
|
27
|
+
export declare const rejects: typeof nativeAssert.rejects;
|
|
28
|
+
export declare const strict: typeof nativeAssert;
|
|
29
|
+
export declare const strictEqual: typeof nativeAssert.strictEqual;
|
|
30
|
+
export declare const throws: typeof nativeAssert.throws;
|
|
31
|
+
//# sourceMappingURL=nodeAssertStrict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeAssertStrict.d.ts","sourceRoot":"","sources":["../src/nodeAssertStrict.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAG9C,QAAA,MAAM,OAAO,qBAA8D,CAAC;eAG7D,OAAO;AACtB,eAAO,MAAM,MAAM;;;;;CAAiB,CAAC;AACrC,eAAO,MAAM,cAAc,oCAAyB,CAAC;AACrD,eAAO,MAAM,WAAW,iCAAsB,CAAC;AAC/C,eAAO,MAAM,SAAS,qCAAoB,CAAC;AAC3C,eAAO,MAAM,eAAe,qCAA0B,CAAC;AACvD,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,aAAa,mCAAwB,CAAC;AACnD,eAAO,MAAM,YAAY,kCAAuB,CAAC;AACjD,eAAO,MAAM,KAAK,iCAAgB,CAAC;AACnC,eAAO,MAAM,IAAI,0BAAe,CAAC;AACjC,eAAO,MAAM,OAAO,6BAAkB,CAAC;AACvC,eAAO,MAAM,KAAK,2BAAgB,CAAC;AACnC,eAAO,MAAM,YAAY,wCAAuB,CAAC;AACjD,eAAO,MAAM,kBAAkB,wCAA6B,CAAC;AAC7D,eAAO,MAAM,QAAQ,oCAAmB,CAAC;AACzC,eAAO,MAAM,cAAc,oCAAyB,CAAC;AACrD,eAAO,MAAM,EAAE,wBAAa,CAAC;AAC7B,eAAO,MAAM,sBAAsB,4CAAiC,CAAC;AACrE,eAAO,MAAM,OAAO,6BAAkB,CAAC;AACvC,eAAO,MAAM,MAAM,qBAAU,CAAC;AAC9B,eAAO,MAAM,WAAW,iCAAsB,CAAC;AAC/C,eAAO,MAAM,MAAM,4BAAiB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import nativeAssert from "node:assert/strict";
|
|
2
|
+
import { createNodeAssertAdapter, setStrictAssertAdapter } from "./nodeAssertAdapter.js";
|
|
3
|
+
const adapter = createNodeAssertAdapter(nativeAssert, "node:assert/strict");
|
|
4
|
+
setStrictAssertAdapter(adapter, adapter);
|
|
5
|
+
export default adapter;
|
|
6
|
+
export const Assert = adapter.Assert;
|
|
7
|
+
export const AssertionError = adapter.AssertionError;
|
|
8
|
+
export const CallTracker = adapter.CallTracker;
|
|
9
|
+
export const deepEqual = adapter.deepEqual;
|
|
10
|
+
export const deepStrictEqual = adapter.deepStrictEqual;
|
|
11
|
+
export const doesNotMatch = adapter.doesNotMatch;
|
|
12
|
+
export const doesNotReject = adapter.doesNotReject;
|
|
13
|
+
export const doesNotThrow = adapter.doesNotThrow;
|
|
14
|
+
export const equal = adapter.equal;
|
|
15
|
+
export const fail = adapter.fail;
|
|
16
|
+
export const ifError = adapter.ifError;
|
|
17
|
+
export const match = adapter.match;
|
|
18
|
+
export const notDeepEqual = adapter.notDeepEqual;
|
|
19
|
+
export const notDeepStrictEqual = adapter.notDeepStrictEqual;
|
|
20
|
+
export const notEqual = adapter.notEqual;
|
|
21
|
+
export const notStrictEqual = adapter.notStrictEqual;
|
|
22
|
+
export const ok = adapter.ok;
|
|
23
|
+
export const partialDeepStrictEqual = adapter.partialDeepStrictEqual;
|
|
24
|
+
export const rejects = adapter.rejects;
|
|
25
|
+
export const strict = adapter;
|
|
26
|
+
export const strictEqual = adapter.strictEqual;
|
|
27
|
+
export const throws = adapter.throws;
|
|
28
|
+
//# sourceMappingURL=nodeAssertStrict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeAssertStrict.js","sourceRoot":"","sources":["../src/nodeAssertStrict.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC5E,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzC,eAAe,OAAO,CAAC;AACvB,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAC3C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAC/C,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface NodeAssertionInstrumentationResult {
|
|
2
|
+
code: string;
|
|
3
|
+
assertions: number;
|
|
4
|
+
}
|
|
5
|
+
/** Wrap native node:assert calls before their arguments are evaluated. */
|
|
6
|
+
export declare function instrumentNodeAssertionPhases(code: string, file: string): NodeAssertionInstrumentationResult;
|
|
7
|
+
export declare function instrumentNodeAssertionsInWorkspace(root: string, files: string[]): number;
|
|
8
|
+
//# sourceMappingURL=nodeAssertionInstrumenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeAssertionInstrumenter.d.ts","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"AAyFA,MAAM,WAAW,kCAAkC;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,kCAAkC,CAkMpC;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAYR"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import generate from "@babel/generator";
|
|
4
|
+
import { parse } from "@babel/parser";
|
|
5
|
+
import traverse from "@babel/traverse";
|
|
6
|
+
import * as t from "@babel/types";
|
|
7
|
+
import { atomicWriteFileSync } from "./atomic.js";
|
|
8
|
+
const ASSERT_MODULES = new Set([
|
|
9
|
+
"assert",
|
|
10
|
+
"assert/strict",
|
|
11
|
+
"node:assert",
|
|
12
|
+
"node:assert/strict",
|
|
13
|
+
]);
|
|
14
|
+
const ASSERTION_EXPORTS = new Set([
|
|
15
|
+
"deepEqual",
|
|
16
|
+
"deepStrictEqual",
|
|
17
|
+
"doesNotMatch",
|
|
18
|
+
"doesNotReject",
|
|
19
|
+
"doesNotThrow",
|
|
20
|
+
"equal",
|
|
21
|
+
"fail",
|
|
22
|
+
"ifError",
|
|
23
|
+
"match",
|
|
24
|
+
"notDeepEqual",
|
|
25
|
+
"notDeepStrictEqual",
|
|
26
|
+
"notEqual",
|
|
27
|
+
"notStrictEqual",
|
|
28
|
+
"ok",
|
|
29
|
+
"partialDeepStrictEqual",
|
|
30
|
+
"rejects",
|
|
31
|
+
"strictEqual",
|
|
32
|
+
"throws",
|
|
33
|
+
]);
|
|
34
|
+
function moduleName(node) {
|
|
35
|
+
return t.isStringLiteral(node) && ASSERT_MODULES.has(node.value)
|
|
36
|
+
? node.value.startsWith("node:")
|
|
37
|
+
? node.value
|
|
38
|
+
: `node:${node.value}`
|
|
39
|
+
: undefined;
|
|
40
|
+
}
|
|
41
|
+
function requiredModule(node) {
|
|
42
|
+
if (!t.isCallExpression(node) ||
|
|
43
|
+
!t.isIdentifier(node.callee, { name: "require" }) ||
|
|
44
|
+
node.arguments.length !== 1)
|
|
45
|
+
return undefined;
|
|
46
|
+
return moduleName(node.arguments[0]);
|
|
47
|
+
}
|
|
48
|
+
function containsAwaitOrYield(path) {
|
|
49
|
+
let found = false;
|
|
50
|
+
path.traverse({
|
|
51
|
+
Function(inner) {
|
|
52
|
+
inner.skip();
|
|
53
|
+
},
|
|
54
|
+
AwaitExpression(inner) {
|
|
55
|
+
found = true;
|
|
56
|
+
inner.stop();
|
|
57
|
+
},
|
|
58
|
+
YieldExpression(inner) {
|
|
59
|
+
found = true;
|
|
60
|
+
inner.stop();
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
return found;
|
|
64
|
+
}
|
|
65
|
+
function memberNames(node) {
|
|
66
|
+
const names = [];
|
|
67
|
+
let current = node;
|
|
68
|
+
while (t.isMemberExpression(current)) {
|
|
69
|
+
const property = current.computed
|
|
70
|
+
? t.isStringLiteral(current.property)
|
|
71
|
+
? current.property.value
|
|
72
|
+
: undefined
|
|
73
|
+
: t.isIdentifier(current.property)
|
|
74
|
+
? current.property.name
|
|
75
|
+
: undefined;
|
|
76
|
+
if (!property)
|
|
77
|
+
return undefined;
|
|
78
|
+
names.unshift(property);
|
|
79
|
+
current = current.object;
|
|
80
|
+
}
|
|
81
|
+
return t.isIdentifier(current) ? [current.name, ...names] : undefined;
|
|
82
|
+
}
|
|
83
|
+
/** Wrap native node:assert calls before their arguments are evaluated. */
|
|
84
|
+
export function instrumentNodeAssertionPhases(code, file) {
|
|
85
|
+
const mayUseNodeAssert = /(?:node:)?assert(?:\/strict)?["']/.test(code);
|
|
86
|
+
const mayUseNodeExpect = /["']node:test["']/.test(code) && /\bexpect\b/.test(code);
|
|
87
|
+
if (!mayUseNodeAssert && !mayUseNodeExpect)
|
|
88
|
+
return { code, assertions: 0 };
|
|
89
|
+
const plugins = [
|
|
90
|
+
"typescript",
|
|
91
|
+
"decorators-legacy",
|
|
92
|
+
"sourcePhaseImports",
|
|
93
|
+
...(file.endsWith("x") ? ["jsx"] : []),
|
|
94
|
+
];
|
|
95
|
+
const ast = parse(code, {
|
|
96
|
+
sourceType: "unambiguous",
|
|
97
|
+
sourceFilename: file,
|
|
98
|
+
errorRecovery: true,
|
|
99
|
+
plugins,
|
|
100
|
+
});
|
|
101
|
+
const objectBindings = new Map();
|
|
102
|
+
const directBindings = new Map();
|
|
103
|
+
const expectBindings = new Set();
|
|
104
|
+
traverse(ast, {
|
|
105
|
+
ImportDeclaration(path) {
|
|
106
|
+
const importedModule = moduleName(path.node.source);
|
|
107
|
+
if (!importedModule) {
|
|
108
|
+
if (!mayUseNodeExpect)
|
|
109
|
+
return;
|
|
110
|
+
for (const specifier of path.node.specifiers) {
|
|
111
|
+
if (t.isImportSpecifier(specifier) &&
|
|
112
|
+
((t.isIdentifier(specifier.imported) && specifier.imported.name === "expect") ||
|
|
113
|
+
(t.isStringLiteral(specifier.imported) && specifier.imported.value === "expect")))
|
|
114
|
+
expectBindings.add(specifier.local.name);
|
|
115
|
+
else if (t.isImportDefaultSpecifier(specifier) &&
|
|
116
|
+
specifier.local.name === "expect")
|
|
117
|
+
expectBindings.add(specifier.local.name);
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
for (const specifier of path.node.specifiers) {
|
|
122
|
+
if (t.isImportDefaultSpecifier(specifier) || t.isImportNamespaceSpecifier(specifier)) {
|
|
123
|
+
objectBindings.set(specifier.local.name, importedModule);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const imported = t.isIdentifier(specifier.imported)
|
|
127
|
+
? specifier.imported.name
|
|
128
|
+
: specifier.imported.value;
|
|
129
|
+
if (imported === "strict")
|
|
130
|
+
objectBindings.set(specifier.local.name, "node:assert/strict");
|
|
131
|
+
else if (ASSERTION_EXPORTS.has(imported))
|
|
132
|
+
directBindings.set(specifier.local.name, `${importedModule}.${imported}`);
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
VariableDeclarator(path) {
|
|
136
|
+
let importedModule = requiredModule(path.node.init);
|
|
137
|
+
if (!importedModule &&
|
|
138
|
+
t.isMemberExpression(path.node.init) &&
|
|
139
|
+
!path.node.init.computed &&
|
|
140
|
+
t.isIdentifier(path.node.init.property, { name: "strict" })) {
|
|
141
|
+
const base = requiredModule(path.node.init.object);
|
|
142
|
+
if (base)
|
|
143
|
+
importedModule = "node:assert/strict";
|
|
144
|
+
}
|
|
145
|
+
if (!importedModule)
|
|
146
|
+
return;
|
|
147
|
+
if (t.isIdentifier(path.node.id)) {
|
|
148
|
+
objectBindings.set(path.node.id.name, importedModule);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (!t.isObjectPattern(path.node.id))
|
|
152
|
+
return;
|
|
153
|
+
for (const property of path.node.id.properties) {
|
|
154
|
+
if (!t.isObjectProperty(property) ||
|
|
155
|
+
!t.isIdentifier(property.value))
|
|
156
|
+
continue;
|
|
157
|
+
const imported = t.isIdentifier(property.key)
|
|
158
|
+
? property.key.name
|
|
159
|
+
: t.isStringLiteral(property.key)
|
|
160
|
+
? property.key.value
|
|
161
|
+
: undefined;
|
|
162
|
+
if (!imported)
|
|
163
|
+
continue;
|
|
164
|
+
if (imported === "strict")
|
|
165
|
+
objectBindings.set(property.value.name, "node:assert/strict");
|
|
166
|
+
else if (ASSERTION_EXPORTS.has(imported))
|
|
167
|
+
directBindings.set(property.value.name, `${importedModule}.${imported}`);
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
if (objectBindings.size === 0 &&
|
|
172
|
+
directBindings.size === 0 &&
|
|
173
|
+
expectBindings.size === 0)
|
|
174
|
+
return { code, assertions: 0 };
|
|
175
|
+
let assertions = 0;
|
|
176
|
+
let phaseBinding;
|
|
177
|
+
traverse(ast, {
|
|
178
|
+
CallExpression(path) {
|
|
179
|
+
if (containsAwaitOrYield(path))
|
|
180
|
+
return;
|
|
181
|
+
let operation;
|
|
182
|
+
if (t.isIdentifier(path.node.callee)) {
|
|
183
|
+
operation = directBindings.get(path.node.callee.name);
|
|
184
|
+
const importedModule = objectBindings.get(path.node.callee.name);
|
|
185
|
+
if (importedModule)
|
|
186
|
+
operation = `${importedModule}.ok`;
|
|
187
|
+
}
|
|
188
|
+
else if (t.isMemberExpression(path.node.callee)) {
|
|
189
|
+
const names = memberNames(path.node.callee);
|
|
190
|
+
const importedModule = names ? objectBindings.get(names[0]) : undefined;
|
|
191
|
+
const method = names?.at(-1);
|
|
192
|
+
if (importedModule &&
|
|
193
|
+
method &&
|
|
194
|
+
ASSERTION_EXPORTS.has(method)) {
|
|
195
|
+
const strict = names?.slice(1, -1).includes("strict");
|
|
196
|
+
operation = `${strict ? "node:assert/strict" : importedModule}.${method}`;
|
|
197
|
+
}
|
|
198
|
+
if (!operation) {
|
|
199
|
+
const matcherNames = [];
|
|
200
|
+
let current = path.node.callee;
|
|
201
|
+
while (t.isMemberExpression(current)) {
|
|
202
|
+
const property = current.computed
|
|
203
|
+
? t.isStringLiteral(current.property)
|
|
204
|
+
? current.property.value
|
|
205
|
+
: undefined
|
|
206
|
+
: t.isIdentifier(current.property)
|
|
207
|
+
? current.property.name
|
|
208
|
+
: undefined;
|
|
209
|
+
if (!property)
|
|
210
|
+
break;
|
|
211
|
+
matcherNames.unshift(property);
|
|
212
|
+
current = current.object;
|
|
213
|
+
}
|
|
214
|
+
if (t.isCallExpression(current) &&
|
|
215
|
+
t.isIdentifier(current.callee) &&
|
|
216
|
+
expectBindings.has(current.callee.name) &&
|
|
217
|
+
/^to[A-Z]/.test(matcherNames.at(-1) ?? ""))
|
|
218
|
+
operation = `expect.${matcherNames.join(".")}`;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (!operation || !path.node.loc)
|
|
222
|
+
return;
|
|
223
|
+
phaseBinding ??= path.scope.getProgramParent().generateUidIdentifier("supercovNodeAssertion");
|
|
224
|
+
const original = path.node;
|
|
225
|
+
const source = `${file}:${path.node.loc.start.line}:${path.node.loc.start.column + 1}`;
|
|
226
|
+
path.replaceWith(t.callExpression(t.cloneNode(phaseBinding), [
|
|
227
|
+
t.stringLiteral(operation),
|
|
228
|
+
t.stringLiteral(source),
|
|
229
|
+
t.arrowFunctionExpression([], original),
|
|
230
|
+
]));
|
|
231
|
+
assertions += 1;
|
|
232
|
+
path.skip();
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
if (!phaseBinding || assertions === 0)
|
|
236
|
+
return { code, assertions: 0 };
|
|
237
|
+
ast.program.body.unshift(t.variableDeclaration("const", [
|
|
238
|
+
t.variableDeclarator(phaseBinding, t.memberExpression(t.memberExpression(t.identifier("globalThis"), t.stringLiteral("__SUPERCOV_DIRECT_RUNTIME__"), true), t.identifier("withNodeAssertionPhase"))),
|
|
239
|
+
]));
|
|
240
|
+
const output = generate(ast, {
|
|
241
|
+
retainLines: true,
|
|
242
|
+
comments: true,
|
|
243
|
+
sourceMaps: false,
|
|
244
|
+
sourceFileName: file,
|
|
245
|
+
}, code);
|
|
246
|
+
return { code: output.code, assertions };
|
|
247
|
+
}
|
|
248
|
+
export function instrumentNodeAssertionsInWorkspace(root, files) {
|
|
249
|
+
let assertions = 0;
|
|
250
|
+
for (const file of files) {
|
|
251
|
+
const path = resolve(root, file);
|
|
252
|
+
if (!existsSync(path))
|
|
253
|
+
continue;
|
|
254
|
+
const code = readFileSync(path, "utf8");
|
|
255
|
+
const transformed = instrumentNodeAssertionPhases(code, file);
|
|
256
|
+
if (transformed.assertions === 0)
|
|
257
|
+
continue;
|
|
258
|
+
atomicWriteFileSync(path, transformed.code);
|
|
259
|
+
assertions += transformed.assertions;
|
|
260
|
+
}
|
|
261
|
+
return assertions;
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=nodeAssertionInstrumenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeAssertionInstrumenter.js","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"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"}
|
package/dist/nodeTest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAyJpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
|
package/dist/nodeTest.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as native from "node:test";
|
|
2
|
-
import { beginBufferedServerEvidence, flushBufferedServerEvidence, withCoverageCarrier, } from "./runtime.js";
|
|
2
|
+
import { beginBufferedServerEvidence, flushBufferedServerEvidence, takeNodeAssertionPhases, withCoverageCarrier, } from "./runtime.js";
|
|
3
3
|
import { callerLocation, runnerExecutionScope, writeRunnerEvidence, } from "./runnerEvidence.js";
|
|
4
4
|
function callbackIndex(args) {
|
|
5
5
|
for (let index = args.length - 1; index >= 0; index -= 1)
|
|
@@ -28,8 +28,12 @@ function wrappedRegistration(original) {
|
|
|
28
28
|
};
|
|
29
29
|
const scope = runnerExecutionScope(identity);
|
|
30
30
|
const options = testOptions(args, index);
|
|
31
|
+
const evidenceDirectory = process.env["SUPERCOV_EVIDENCE_DIR"];
|
|
31
32
|
const next = [...args];
|
|
32
33
|
const execute = (callbackThis, context, done) => {
|
|
34
|
+
// A test or its hooks may intentionally modify Supercov's public
|
|
35
|
+
// environment while testing integrations. Keep this attempt's transport
|
|
36
|
+
// destination fixed to the value present when the test was registered.
|
|
33
37
|
beginBufferedServerEvidence(scope);
|
|
34
38
|
let status = options?.skip || options?.todo
|
|
35
39
|
? "skipped"
|
|
@@ -54,7 +58,7 @@ function wrappedRegistration(original) {
|
|
|
54
58
|
return;
|
|
55
59
|
emitted = true;
|
|
56
60
|
flushBufferedServerEvidence(scope);
|
|
57
|
-
writeRunnerEvidence(identity, nextStatus, scope);
|
|
61
|
+
writeRunnerEvidence(identity, nextStatus, scope, evidenceDirectory, takeNodeAssertionPhases(scope));
|
|
58
62
|
};
|
|
59
63
|
try {
|
|
60
64
|
if (callback.length >= 2) {
|
package/dist/nodeTest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
|
package/dist/playwright.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,EAEpB,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAqB1B,cAAc,kBAAkB,CAAC;AA2BjC,QAAA,MAAM,UAAU,+BAAiB,CAAC;AA8sBlC,eAAO,MAAM,MAAM,EAEd,OAAO,UAAU,CAAC;AAmOvB,eAAO,MAAM,IAAI;qBAzKuC,IAAI;kDAyKxB,CAAC"}
|
package/dist/playwright.js
CHANGED
|
@@ -100,7 +100,6 @@ class CoveragePhaseController {
|
|
|
100
100
|
workers = new Set();
|
|
101
101
|
contexts = new Set();
|
|
102
102
|
contextConfiguredHeaders = new Map();
|
|
103
|
-
contextRoutes = new Map();
|
|
104
103
|
cdpSessions = new Map();
|
|
105
104
|
newDocumentScriptIds = new Map();
|
|
106
105
|
pendingRegistrations = new Set();
|
|
@@ -167,18 +166,6 @@ class CoveragePhaseController {
|
|
|
167
166
|
scopeValue: encodeCoverageScope(this.scope),
|
|
168
167
|
scopeCookie: COVERAGE_SCOPE_COOKIE,
|
|
169
168
|
});
|
|
170
|
-
const attachPhase = async (route) => {
|
|
171
|
-
const phaseId = this.requestPhaseId();
|
|
172
|
-
await route.continue({
|
|
173
|
-
headers: {
|
|
174
|
-
...route.request().headers(),
|
|
175
|
-
[COVERAGE_SCOPE_HEADER]: encodeCoverageScope(this.scope),
|
|
176
|
-
...(phaseId ? { [COVERAGE_PHASE_HEADER]: phaseId } : {}),
|
|
177
|
-
},
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
this.contextRoutes.set(context, attachPhase);
|
|
181
|
-
await context.route("**/*", attachPhase);
|
|
182
169
|
const register = (page) => {
|
|
183
170
|
const pending = this.registerPage(page).finally(() => this.pendingRegistrations.delete(pending));
|
|
184
171
|
this.pendingRegistrations.add(pending);
|
|
@@ -255,8 +242,6 @@ class CoveragePhaseController {
|
|
|
255
242
|
.catch(() => undefined);
|
|
256
243
|
await cdp.detach().catch(() => undefined);
|
|
257
244
|
}
|
|
258
|
-
for (const [context, route] of this.contextRoutes)
|
|
259
|
-
await context.unroute("**/*", route).catch(() => undefined);
|
|
260
245
|
}
|
|
261
246
|
finish(phase, error) {
|
|
262
247
|
phase.endedAtMs = Date.now();
|
|
@@ -573,10 +558,15 @@ function installChildProcessScopePropagation() {
|
|
|
573
558
|
installChildProcessScopePropagation();
|
|
574
559
|
function wrapMatchers(matchers, path = "expect") {
|
|
575
560
|
return new Proxy(matchers, {
|
|
576
|
-
get(target, property
|
|
577
|
-
|
|
561
|
+
get(target, property) {
|
|
562
|
+
// Matcher objects and built-ins can expose getters whose internal slots
|
|
563
|
+
// require the original receiver (for example RegExp.prototype.dotAll).
|
|
564
|
+
// Passing this proxy as the receiver changes observable behaviour.
|
|
565
|
+
const value = Reflect.get(target, property, target);
|
|
578
566
|
const name = String(property);
|
|
579
|
-
if (value &&
|
|
567
|
+
if (value &&
|
|
568
|
+
typeof value === "object" &&
|
|
569
|
+
(name === "not" || name === "resolves" || name === "rejects"))
|
|
580
570
|
return wrapMatchers(value, `${path}.${name}`);
|
|
581
571
|
if (typeof value !== "function")
|
|
582
572
|
return value;
|