mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
fix(ext/node): add path to fs.stat
and fs.statSync
error (#26037)
This commit is contained in:
parent
2d2928c4b7
commit
56ecc26b71
2 changed files with 55 additions and 2 deletions
|
@ -383,7 +383,10 @@ export function stat(
|
|||
|
||||
Deno.stat(path).then(
|
||||
(stat) => callback(null, CFISBIS(stat, options.bigint)),
|
||||
(err) => callback(denoErrorToNodeError(err, { syscall: "stat" })),
|
||||
(err) =>
|
||||
callback(
|
||||
denoErrorToNodeError(err, { syscall: "stat", path: getPathname(path) }),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -417,9 +420,16 @@ export function statSync(
|
|||
return;
|
||||
}
|
||||
if (err instanceof Error) {
|
||||
throw denoErrorToNodeError(err, { syscall: "stat" });
|
||||
throw denoErrorToNodeError(err, {
|
||||
syscall: "stat",
|
||||
path: getPathname(path),
|
||||
});
|
||||
} else {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getPathname(path: string | URL) {
|
||||
return typeof path === "string" ? path : path.pathname;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import {
|
|||
cp,
|
||||
FileHandle,
|
||||
open,
|
||||
stat,
|
||||
writeFile,
|
||||
} from "node:fs/promises";
|
||||
import process from "node:process";
|
||||
|
@ -123,6 +124,48 @@ Deno.test(
|
|||
},
|
||||
);
|
||||
|
||||
Deno.test(
|
||||
"[node/fs statSync] throw error with path information",
|
||||
() => {
|
||||
const file = "non-exist-file";
|
||||
const fileUrl = new URL(file, import.meta.url);
|
||||
|
||||
assertThrows(() => {
|
||||
statSync(file);
|
||||
}, "Error: ENOENT: no such file or directory, stat 'non-exist-file'");
|
||||
|
||||
assertThrows(() => {
|
||||
statSync(fileUrl);
|
||||
}, `Error: ENOENT: no such file or directory, stat '${fileUrl.pathname}'`);
|
||||
},
|
||||
);
|
||||
|
||||
Deno.test(
|
||||
"[node/fs/promises stat] throw error with path information",
|
||||
async () => {
|
||||
const file = "non-exist-file";
|
||||
const fileUrl = new URL(file, import.meta.url);
|
||||
|
||||
try {
|
||||
await stat(file);
|
||||
} catch (error: unknown) {
|
||||
assertEquals(
|
||||
`${error}`,
|
||||
"Error: ENOENT: no such file or directory, stat 'non-exist-file'",
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
await stat(fileUrl);
|
||||
} catch (error: unknown) {
|
||||
assertEquals(
|
||||
`${error}`,
|
||||
`Error: ENOENT: no such file or directory, stat '${fileUrl.pathname}'`,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Deno.test(
|
||||
"[node/fs/promises cp] copy file",
|
||||
async () => {
|
||||
|
|
Loading…
Reference in a new issue