From c91ce2120c5c292f28685b364f2e3a897da751ea Mon Sep 17 00:00:00 2001 From: Livia Medeiros Date: Sun, 17 Nov 2024 08:23:58 +0900 Subject: [PATCH] fs: fix `getDirent().parentPath` when type is `UV_DIRENT_UNKNOWN` PR-URL: https://github.com/nodejs/node/pull/55553 Reviewed-By: Antoine du Hamel --- lib/internal/fs/utils.js | 2 +- test/parallel/test-fs-utils-get-dirents.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 739dd0bd6ff..53644740144 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -301,7 +301,7 @@ function getDirent(path, name, type, callback) { callback(err); return; } - callback(null, new DirentFromStats(name, stats, filepath)); + callback(null, new DirentFromStats(name, stats, path)); }); } else { callback(null, new Dirent(name, type, path)); diff --git a/test/parallel/test-fs-utils-get-dirents.js b/test/parallel/test-fs-utils-get-dirents.js index 50393927066..55082ee698f 100644 --- a/test/parallel/test-fs-utils-get-dirents.js +++ b/test/parallel/test-fs-utils-get-dirents.js @@ -75,6 +75,7 @@ const filename = 'foo'; common.mustCall((err, dirent) => { assert.strictEqual(err, null); assert.strictEqual(dirent.name, filename); + assert.strictEqual(dirent.parentPath, tmpdir.path); }, )); } @@ -100,20 +101,22 @@ const filename = 'foo'; common.mustCall((err, dirent) => { assert.strictEqual(err, null); assert.strictEqual(dirent.name, filenameBuffer); - assert.deepStrictEqual(dirent.parentPath, Buffer.from(tmpdir.resolve(`${filename}/`))); + assert.strictEqual(dirent.parentPath, tmpdir.path); }, )); } { // Buffer + Buffer const filenameBuffer = Buffer.from(filename); + const dirnameBuffer = Buffer.from(tmpdir.path); getDirent( - Buffer.from(tmpdir.path), + dirnameBuffer, filenameBuffer, UV_DIRENT_UNKNOWN, common.mustCall((err, dirent) => { assert.strictEqual(err, null); assert.strictEqual(dirent.name, filenameBuffer); + assert.deepStrictEqual(dirent.parentPath, dirnameBuffer); }, )); }