1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -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:
Kaique da Silva 2023-06-13 03:32:02 -03:00 committed by Bartek Iwańczuk
parent 28b04b285e
commit 8b1df4f9bd
No known key found for this signature in database
GPG key ID: 0C6BCDDC3B3AD750
2 changed files with 87 additions and 0 deletions

View file

@ -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,

View 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",
);
},
});