Skip to content

Commit 1b93615

Browse files
committed
test: don't run symlink tests on Windows
1 parent a7c67f7 commit 1b93615

File tree

3 files changed

+46
-35
lines changed

3 files changed

+46
-35
lines changed

test/api-spec.js

+41-32
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const rimraf = require('rimraf');
99
const asar = require('..');
1010
const compDirs = require('./util/compareDirectories');
1111
const compFileLists = require('./util/compareFileLists');
12-
const compFiles = require('./util/compareFiles');
12+
const { compFiles, isSymbolicLinkSync } = require('./util/compareFiles');
1313
const transform = require('./util/transformStream');
1414

1515
async function assertPackageListEquals(actualList, expectedFilename) {
@@ -107,38 +107,47 @@ describe('api', function () {
107107
asar.extractAll('test/input/extractthis-unpack-dir.asar', 'tmp/extractthis-unpack-dir-api/');
108108
return compDirs('tmp/extractthis-unpack-dir-api/', 'test/expected/extractthis');
109109
});
110-
it('should extract an archive with symlink', async () => {
111-
await asar.createPackageWithOptions(
112-
'test/input/packthis-with-symlink/',
113-
'tmp/packthis-with-symlink.asar',
114-
{ dot: false },
115-
);
116-
asar.extractAll('tmp/packthis-with-symlink.asar', 'tmp/packthis-with-symlink/');
117-
return compFiles(
118-
'tmp/packthis-with-symlink/real.txt',
119-
'test/input/packthis-with-symlink/real.txt',
120-
);
121-
});
122-
it('should extract an archive with symlink having the same prefix', async () => {
123-
await asar.createPackageWithOptions(
124-
'test/input/packthis-with-symlink-same-prefix/',
125-
'tmp/packthis-with-symlink-same-prefix.asar',
126-
{ dot: false },
127-
);
128-
asar.extractAll(
129-
'tmp/packthis-with-symlink-same-prefix.asar',
130-
'tmp/packthis-with-symlink-same-prefix/',
131-
);
132-
return compFiles(
133-
'tmp/packthis-with-symlink-same-prefix/real.txt',
134-
'test/input/packthis-with-symlink-same-prefix/real.txt',
135-
);
136-
});
137-
it('should not extract an archive with a bad symlink', async () => {
138-
assert.throws(() => {
139-
asar.extractAll('test/input/bad-symlink.asar', 'tmp/bad-symlink/');
110+
111+
// We don't extract symlinks on Windows, so skip these tests
112+
if (os.platform() !== 'win32') {
113+
it('should extract an archive with symlink', async () => {
114+
assert.strictEqual(isSymbolicLinkSync('test/input/packthis-with-symlink/real.txt'), true);
115+
await asar.createPackageWithOptions(
116+
'test/input/packthis-with-symlink/',
117+
'tmp/packthis-with-symlink.asar',
118+
{ dot: false },
119+
);
120+
asar.extractAll('tmp/packthis-with-symlink.asar', 'tmp/packthis-with-symlink/');
121+
return compFiles(
122+
'tmp/packthis-with-symlink/real.txt',
123+
'test/input/packthis-with-symlink/real.txt',
124+
);
140125
});
141-
});
126+
it('should extract an archive with symlink having the same prefix', async () => {
127+
assert.strictEqual(
128+
isSymbolicLinkSync('test/input/packthis-with-symlink-same-prefix/real.txt'),
129+
true,
130+
);
131+
await asar.createPackageWithOptions(
132+
'test/input/packthis-with-symlink-same-prefix/',
133+
'tmp/packthis-with-symlink-same-prefix.asar',
134+
{ dot: false },
135+
);
136+
asar.extractAll(
137+
'tmp/packthis-with-symlink-same-prefix.asar',
138+
'tmp/packthis-with-symlink-same-prefix/',
139+
);
140+
return compFiles(
141+
'tmp/packthis-with-symlink-same-prefix/real.txt',
142+
'test/input/packthis-with-symlink-same-prefix/real.txt',
143+
);
144+
});
145+
it('should not extract an archive with a bad symlink', async () => {
146+
assert.throws(() => {
147+
asar.extractAll('test/input/bad-symlink.asar', 'tmp/bad-symlink/');
148+
});
149+
});
150+
}
142151
it('should handle multibyte characters in paths', async () => {
143152
await asar.createPackageWithOptions(
144153
'test/input/packthis-unicode-path/',

test/cli-spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const rimraf = require('rimraf');
1010

1111
const compDirs = require('./util/compareDirectories');
1212
const compFileLists = require('./util/compareFileLists');
13-
const compFiles = require('./util/compareFiles');
13+
const { compFiles } = require('./util/compareFiles');
1414
const createSymlinkApp = require('./util/createSymlinkApp');
1515

1616
const exec = promisify(childProcess.exec);

test/util/compareFiles.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
const assert = require('assert');
44
const fs = require('../../lib/wrapped-fs').default;
55

6-
module.exports = async function (actualFilePath, expectedFilePath) {
6+
async function compFiles(actualFilePath, expectedFilePath) {
77
if (process.env.ELECTRON_ASAR_SPEC_UPDATE) {
88
await fs.writeFile(expectedFilePath, await fs.readFile(actualFilePath));
99
}
@@ -26,9 +26,11 @@ module.exports = async function (actualFilePath, expectedFilePath) {
2626
];
2727
assert.strictEqual(actualSymlinkPointer, expectedSymlinkPointer);
2828
}
29-
};
29+
}
3030

3131
function isSymbolicLinkSync(path) {
3232
const stats = fs.lstatSync(path);
3333
return stats.isSymbolicLink();
3434
}
35+
36+
module.exports = { compFiles, isSymbolicLinkSync };

0 commit comments

Comments
 (0)