Compare commits

...
2 changed files with 18 additions and 2 deletions

No files matched your search

@@ -62,6 +62,22 @@ describe("TypeScript import-equals links", () => {
}); });
describe("CommonJS wrapper parameter redeclarations", () => { describe("CommonJS wrapper parameter redeclarations", () => {
it("keeps a top-level wrapper require redeclaration", () => {
const path = "app/main.cjs";
const parsed = parseJavaScriptSource(
'var require; require("./wrapper.cjs");',
path,
);
expect(parsed).not.toBeNull();
const ir = analyzeParsedJavaScriptSemantics(
parsed!,
moduleResolutionModeForJavaScriptReference(path, "static-import"),
);
expect(ir.moduleLinks).toContainEqual(
expect.objectContaining({ kind: "require", specifier: "./wrapper.cjs" }),
);
});
it("retains ambient exports and require through uninitialized top-level vars", () => { it("retains ambient exports and require through uninitialized top-level vars", () => {
const path = "app/main.cjs"; const path = "app/main.cjs";
const parsed = parseJavaScriptSource( const parsed = parseJavaScriptSource(
@@ -78,12 +78,12 @@ it("does not resolve a parameter named require as a module dependency", () => {
); );
}); });
it("keeps a top-level wrapper require redeclaration", () => { it("keeps a formatless top-level require redeclaration unresolved", () => {
const analysis = analyzeJavaScriptStaticSource( const analysis = analyzeJavaScriptStaticSource(
`var require; require("./wrapper.cjs");`, `var require; require("./wrapper.cjs");`,
); );
expect(analysis.references).toContainEqual( expect(analysis.references).toContainEqual(
expect.objectContaining({ specifier: "./wrapper.cjs" }), expect.objectContaining({ kind: "require", specifier: null }),
); );
}); });