summaryrefslogtreecommitdiff
path: root/cli/tests/unit_node
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/unit_node')
-rw-r--r--cli/tests/unit_node/_fs/_fs_dirent_test.ts86
1 files changed, 86 insertions, 0 deletions
diff --git a/cli/tests/unit_node/_fs/_fs_dirent_test.ts b/cli/tests/unit_node/_fs/_fs_dirent_test.ts
new file mode 100644
index 000000000..eca693f6f
--- /dev/null
+++ b/cli/tests/unit_node/_fs/_fs_dirent_test.ts
@@ -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",
+ );
+ },
+});