mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
test(ext/node): add fs dirent unit test from std (#19461)
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
This commit is contained in:
parent
28b04b285e
commit
8b1df4f9bd
2 changed files with 87 additions and 0 deletions
|
@ -19,6 +19,7 @@ util::unit_test_factory!(
|
|||
_fs_close_test = _fs / _fs_close_test,
|
||||
_fs_copy_test = _fs / _fs_copy_test,
|
||||
_fs_dir_test = _fs / _fs_dir_test,
|
||||
_fs_dirent_test = _fs / _fs_dirent_test,
|
||||
_fs_exists_test = _fs / _fs_exists_test,
|
||||
_fs_fdatasync_test = _fs / _fs_fdatasync_test,
|
||||
_fs_fstat_test = _fs / _fs_fstat_test,
|
||||
|
|
86
cli/tests/unit_node/_fs/_fs_dirent_test.ts
Normal file
86
cli/tests/unit_node/_fs/_fs_dirent_test.ts
Normal file
|
@ -0,0 +1,86 @@
|
|||
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||||
import {
|
||||
assert,
|
||||
assertEquals,
|
||||
assertThrows,
|
||||
} from "../../../../test_util/std/testing/asserts.ts";
|
||||
import { Dirent as Dirent_ } from "node:fs";
|
||||
|
||||
// deno-lint-ignore no-explicit-any
|
||||
const Dirent = Dirent_ as any;
|
||||
|
||||
class DirEntryMock implements Deno.DirEntry {
|
||||
name = "";
|
||||
isFile = false;
|
||||
isDirectory = false;
|
||||
isSymlink = false;
|
||||
}
|
||||
|
||||
Deno.test({
|
||||
name: "Directories are correctly identified",
|
||||
fn() {
|
||||
const entry: DirEntryMock = new DirEntryMock();
|
||||
entry.isDirectory = true;
|
||||
entry.isFile = false;
|
||||
entry.isSymlink = false;
|
||||
assert(new Dirent(entry).isDirectory());
|
||||
assert(!new Dirent(entry).isFile());
|
||||
assert(!new Dirent(entry).isSymbolicLink());
|
||||
},
|
||||
});
|
||||
|
||||
Deno.test({
|
||||
name: "Files are correctly identified",
|
||||
fn() {
|
||||
const entry: DirEntryMock = new DirEntryMock();
|
||||
entry.isDirectory = false;
|
||||
entry.isFile = true;
|
||||
entry.isSymlink = false;
|
||||
assert(!new Dirent(entry).isDirectory());
|
||||
assert(new Dirent(entry).isFile());
|
||||
assert(!new Dirent(entry).isSymbolicLink());
|
||||
},
|
||||
});
|
||||
|
||||
Deno.test({
|
||||
name: "Symlinks are correctly identified",
|
||||
fn() {
|
||||
const entry: DirEntryMock = new DirEntryMock();
|
||||
entry.isDirectory = false;
|
||||
entry.isFile = false;
|
||||
entry.isSymlink = true;
|
||||
assert(!new Dirent(entry).isDirectory());
|
||||
assert(!new Dirent(entry).isFile());
|
||||
assert(new Dirent(entry).isSymbolicLink());
|
||||
},
|
||||
});
|
||||
|
||||
Deno.test({
|
||||
name: "File name is correct",
|
||||
fn() {
|
||||
const entry: DirEntryMock = new DirEntryMock();
|
||||
entry.name = "my_file";
|
||||
assertEquals(new Dirent(entry).name, "my_file");
|
||||
},
|
||||
});
|
||||
|
||||
Deno.test({
|
||||
name: "Socket and FIFO pipes aren't yet available",
|
||||
fn() {
|
||||
const entry: DirEntryMock = new DirEntryMock();
|
||||
assertThrows(
|
||||
() => {
|
||||
new Dirent(entry).isFIFO();
|
||||
},
|
||||
Error,
|
||||
"does not yet support",
|
||||
);
|
||||
assertThrows(
|
||||
() => {
|
||||
new Dirent(entry).isSocket();
|
||||
},
|
||||
Error,
|
||||
"does not yet support",
|
||||
);
|
||||
},
|
||||
});
|
Loading…
Reference in a new issue