fix(asar): readdir(withFileTypes) fails on deep directory (#26865)

when using readdirSync on a deep directory within the archive, the code fails to get the stats of child paths.
This commit is contained in:
Avi Vahl 2020-12-15 04:21:49 +02:00 committed by GitHub
parent b73b343e29
commit 9b02d94e97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

View file

@ -920,6 +920,16 @@ describe('asar package', function () {
expect(names).to.deep.equal(['dir1', 'dir2', 'dir3', 'file1', 'file2', 'file3', 'link1', 'link2', 'ping.js']);
});
it('supports withFileTypes for a deep directory', function () {
const p = path.join(asarDir, 'a.asar', 'dir3');
const dirs = fs.readdirSync(p, { withFileTypes: true });
for (const dir of dirs) {
expect(dir instanceof fs.Dirent).to.be.true();
}
const names = dirs.map(a => a.name);
expect(names).to.deep.equal(['file1', 'file2', 'file3']);
});
it('reads dirs from a linked dir', function () {
const p = path.join(asarDir, 'a.asar', 'link2', 'link2');
const dirs = fs.readdirSync(p);