Skip to content

Commit 0f04fb2

Browse files
committed
test: add test for conditionally loaded .node files
1 parent ad2aaa8 commit 0f04fb2

File tree

7 files changed

+37
-0
lines changed

7 files changed

+37
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ node_modules
1616
docs/output
1717
docs/includes
1818
spec/fixtures/evil-files/
19+
!spec/fixtures/packages/package-with-incompatible-native-module-loaded-conditionally/node_modules/
1920
out/
2021
/electron/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const condition = false;
2+
3+
if (condition) {
4+
const { native } = require("./node_modules/native-module");
5+
native(condition);
6+
}

spec/fixtures/packages/package-with-incompatible-native-module-loaded-conditionally/node_modules/native-module/build/Release/native.node

Whitespace-only changes.

spec/fixtures/packages/package-with-incompatible-native-module-loaded-conditionally/node_modules/native-module/main.js

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/packages/package-with-incompatible-native-module-loaded-conditionally/node_modules/native-module/package.json

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "package-with-incompatible-native-module",
3+
"version": "1.0.0",
4+
"main": "./main.js"
5+
}

spec/package-spec.js

+14
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ describe('Package', function() {
4545
);
4646
});
4747

48+
it('detects the package as incompatible even if .node file is loaded conditionally', function() {
49+
const packagePath = atom.project
50+
.getDirectories()[0]
51+
.resolve(
52+
'packages/package-with-incompatible-native-module-loaded-conditionally'
53+
);
54+
const pack = buildPackage(packagePath);
55+
expect(pack.isCompatible()).toBe(false);
56+
expect(pack.incompatibleModules[0].name).toBe('native-module');
57+
expect(pack.incompatibleModules[0].path).toBe(
58+
path.join(packagePath, 'node_modules', 'native-module')
59+
);
60+
});
61+
4862
it("utilizes _atomModuleCache if present to determine the package's native dependencies", function() {
4963
let packagePath = atom.project
5064
.getDirectories()[0]

0 commit comments

Comments
 (0)