mirror of
https://github.com/morluto/rea.git
synced 2026-11-03 13:26:10 +00:00
1 parent
f09dde0cc9
commit
6cb0684372
2 files changed
+21
-8
No files matched your search
@@ -5,7 +5,7 @@ import { expect, it } from "vitest";
|
||||
|
||||
import { analyzeJavaScriptStaticSource } from "./javascriptStaticAnalysis.js";
|
||||
import { parseJavaScriptSource } from "./javascriptSourceParser.js";
|
||||
import { unshadowedReferenceSourceRequireCalls } from "../referenceSourceRequireBindings.js";
|
||||
import { referenceSourceRequireCallBases } from "../referenceSourceRequireBindings.js";
|
||||
|
||||
it.each(["require", "require.resolve", "require.main"])(
|
||||
"distinguishes invoked loading from reference association for %s",
|
||||
@@ -25,9 +25,7 @@ it.each(["require", "require.resolve", "require.main"])(
|
||||
);
|
||||
const parsed = parseJavaScriptSource(source);
|
||||
if (parsed === null) throw new Error("Expected loader association fixture");
|
||||
expect(
|
||||
unshadowedReferenceSourceRequireCalls(parsed, "entry.cjs").size,
|
||||
).toBe(1);
|
||||
expect(referenceSourceRequireCallBases(parsed, "entry.cjs").size).toBe(1);
|
||||
},
|
||||
);
|
||||
|
||||
@@ -39,6 +37,12 @@ it.each([
|
||||
1,
|
||||
"node:path",
|
||||
],
|
||||
[
|
||||
"renamed proven factory",
|
||||
`${imported}const load=make(import.meta.url);load('node:path');`,
|
||||
1,
|
||||
"node:path",
|
||||
],
|
||||
[
|
||||
"opaque replacement factory",
|
||||
"import*as mod from'node:module';mod.default.createRequire=replacement;const require=mod.default.createRequire(import.meta.url);require('node:path');",
|
||||
@@ -50,9 +54,9 @@ it.each([
|
||||
(_name, source, associated, specifier) => {
|
||||
const parsed = parseJavaScriptSource(source);
|
||||
if (parsed === null) throw new Error("Expected factory proof fixture");
|
||||
expect(
|
||||
unshadowedReferenceSourceRequireCalls(parsed, "entry.mjs").size,
|
||||
).toBe(associated);
|
||||
expect(referenceSourceRequireCallBases(parsed, "entry.mjs").size).toBe(
|
||||
associated,
|
||||
);
|
||||
const analysis = analyzeJavaScriptStaticSource(source);
|
||||
expect(analysis.parse_error_count).toBe(0);
|
||||
expect(
|
||||
@@ -61,6 +65,14 @@ it.each([
|
||||
},
|
||||
);
|
||||
|
||||
it("associates a renamed createRequire resolve method with search options", () => {
|
||||
const parsed = parseJavaScriptSource(
|
||||
`${imported}const load=make(import.meta.url);load.resolve('node:path',{paths:[]});`,
|
||||
);
|
||||
if (parsed === null) throw new Error("Expected factory proof fixture");
|
||||
expect(referenceSourceRequireCallBases(parsed, "entry.mjs").size).toBe(1);
|
||||
});
|
||||
|
||||
it.each([
|
||||
[
|
||||
"captured wrapper",
|
||||
|
||||
Reference in new issue
Block a user