mirror of
https://github.com/morluto/rea.git
synced 2026-11-15 11:13:21 +00:00
fix(javascript): preserve exact native-addon extension dispatch (#10083)
fix(javascript): preserve native addon extension spelling
This commit is contained in:
1 parent
0ece957589
commit
f7d564f436
3 files changed
+89
-4
No files matched your search
@@ -177,3 +177,33 @@ it("does not prove native bindings through a replaced aliased loader member", ()
|
||||
);
|
||||
expect(analysis.electron.native_addon_bindings).toEqual([]);
|
||||
});
|
||||
|
||||
it.each(
|
||||
["node", "NODE", "Node"].flatMap((extension) =>
|
||||
["require", "import", "commonjs-export", "esm-export"].map((kind) => ({
|
||||
extension,
|
||||
kind,
|
||||
})),
|
||||
),
|
||||
)(
|
||||
"preserves native extension dispatch for $kind with .$extension",
|
||||
({ extension, kind }) => {
|
||||
const specifier = `./AddOn-É.${extension}`;
|
||||
const source =
|
||||
kind === "require"
|
||||
? `const addon = require(${JSON.stringify(specifier)});`
|
||||
: kind === "import"
|
||||
? `import addon from ${JSON.stringify(specifier)};`
|
||||
: kind === "commonjs-export"
|
||||
? `module.exports = require(${JSON.stringify(specifier)});`
|
||||
: `export { default } from ${JSON.stringify(specifier)};`;
|
||||
const analysis =
|
||||
kind === "require" || kind === "commonjs-export"
|
||||
? analyzeCommonJsStaticFixture(source)
|
||||
: analyzeJavaScriptStaticSource(source);
|
||||
expect(analysis.parse_error_count).toBe(0);
|
||||
expect(analysis.electron.native_addon_bindings).toEqual(
|
||||
extension === "node" ? [expect.objectContaining({ specifier })] : [],
|
||||
);
|
||||
},
|
||||
);
|
||||
Reference in new issue
Block a user