node/test/parallel/test-fs-readdir-types-symlinks.js
Juan José c9bf257180
lib: avoid excluding symlinks in recursive fs.readdir with filetypes
Fixes: https://github.com/nodejs/node/issues/52663
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/55714
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
Reviewed-By: James M Snell <jasnell@gmail.com>
2024-11-25 05:07:13 +00:00

37 lines
990 B
JavaScript

'use strict';
// Refs: https://github.com/nodejs/node/issues/52663
const common = require('../common');
const assert = require('node:assert');
const fs = require('node:fs');
const path = require('node:path');
if (!common.canCreateSymLink())
common.skip('insufficient privileges');
const tmpdir = require('../common/tmpdir');
const readdirDir = tmpdir.path;
// clean up the tmpdir
tmpdir.refresh();
// a/1, a/2
const a = path.join(readdirDir, 'a');
fs.mkdirSync(a);
fs.writeFileSync(path.join(a, '1'), 'irrelevant');
fs.writeFileSync(path.join(a, '2'), 'irrelevant');
// b/1
const b = path.join(readdirDir, 'b');
fs.mkdirSync(b);
fs.writeFileSync(path.join(b, '1'), 'irrelevant');
// b/c -> a
const c = path.join(readdirDir, 'b', 'c');
fs.symlinkSync(a, c, 'dir');
// Just check that the number of entries are the same
assert.strictEqual(
fs.readdirSync(b, { recursive: true, withFileTypes: true }).length,
fs.readdirSync(b, { recursive: true, withFileTypes: false }).length
);