diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/dts/lib.deno.ns.d.ts | 2 | ||||
-rw-r--r-- | cli/tests/unit/file_test.ts | 32 |
2 files changed, 34 insertions, 0 deletions
diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts index 7d248e4b2..a4ef6bc68 100644 --- a/cli/dts/lib.deno.ns.d.ts +++ b/cli/dts/lib.deno.ns.d.ts @@ -785,6 +785,8 @@ declare namespace Deno { readSync(p: Uint8Array): number | null; seek(offset: number, whence: SeekMode): Promise<number>; seekSync(offset: number, whence: SeekMode): number; + stat(): Promise<FileInfo>; + statSync(): FileInfo; close(): void; } diff --git a/cli/tests/unit/file_test.ts b/cli/tests/unit/file_test.ts index eaafbae27..640198034 100644 --- a/cli/tests/unit/file_test.ts +++ b/cli/tests/unit/file_test.ts @@ -103,3 +103,35 @@ unitTest(function fileUsingNumberFileName(): void { unitTest(function fileUsingEmptyStringFileName(): void { testSecondArgument("", ""); }); + +unitTest({ perms: { read: true } }, function fileStatSyncSuccess(): void { + const file = Deno.openSync("README.md"); + const fileInfo = file.statSync(); + assert(fileInfo.isFile); + assert(!fileInfo.isSymlink); + assert(!fileInfo.isDirectory); + assert(fileInfo.size); + assert(fileInfo.atime); + assert(fileInfo.mtime); + // The `birthtime` field is not available on Linux before kernel version 4.11. + assert(fileInfo.birthtime || Deno.build.os === "linux"); + + file.close(); +}); + +unitTest({ perms: { read: true } }, async function fileStatSuccess(): Promise< + void +> { + const file = await Deno.open("README.md"); + const fileInfo = await file.stat(); + assert(fileInfo.isFile); + assert(!fileInfo.isSymlink); + assert(!fileInfo.isDirectory); + assert(fileInfo.size); + assert(fileInfo.atime); + assert(fileInfo.mtime); + // The `birthtime` field is not available on Linux before kernel version 4.11. + assert(fileInfo.birthtime || Deno.build.os === "linux"); + + file.close(); +}); |