summaryrefslogtreecommitdiff
path: root/std/node/_fs/_fs_readdir_test.ts
diff options
context:
space:
mode:
authorali ahmed <48116123+AliBasicCoder@users.noreply.github.com>2020-10-14 17:59:28 +0200
committerGitHub <noreply@github.com>2020-10-14 11:59:28 -0400
commit5bed06fb94214db70a27cca8fa8eff717d537dba (patch)
tree7f208b9f87cd3c5d3f8f330af5b6b0fe3b4038d2 /std/node/_fs/_fs_readdir_test.ts
parentf75bd89aff7cffafceb394d629995479af54a156 (diff)
feat(std/fs/node): adding some functions (#7921)
Diffstat (limited to 'std/node/_fs/_fs_readdir_test.ts')
-rw-r--r--std/node/_fs/_fs_readdir_test.ts71
1 files changed, 71 insertions, 0 deletions
diff --git a/std/node/_fs/_fs_readdir_test.ts b/std/node/_fs/_fs_readdir_test.ts
new file mode 100644
index 000000000..169e10245
--- /dev/null
+++ b/std/node/_fs/_fs_readdir_test.ts
@@ -0,0 +1,71 @@
+import { assertEquals, assertNotEquals, fail } from "../../testing/asserts.ts";
+import { readdir, readdirSync } from "./_fs_readdir.ts";
+import { join } from "../../path/mod.ts";
+
+Deno.test({
+ name: "ASYNC: reading empty directory",
+ async fn() {
+ const dir = Deno.makeTempDirSync();
+ await new Promise<string[]>((resolve, reject) => {
+ readdir(dir, (err, files) => {
+ if (err) reject(err);
+ resolve(files);
+ });
+ })
+ .then((files) => assertEquals(files, []))
+ .catch(() => fail())
+ .finally(() => Deno.removeSync(dir));
+ },
+});
+
+function assertEqualsArrayAnyOrder<T>(actual: T[], expected: T[]) {
+ assertEquals(actual.length, expected.length);
+ for (const item of expected) {
+ const index = actual.indexOf(item);
+ assertNotEquals(index, -1);
+ expected = expected.splice(index, 1);
+ }
+}
+
+Deno.test({
+ name: "ASYNC: reading non-empty directory",
+ async fn() {
+ const dir = Deno.makeTempDirSync();
+ Deno.writeTextFileSync(join(dir, "file1.txt"), "hi");
+ Deno.writeTextFileSync(join(dir, "file2.txt"), "hi");
+ Deno.mkdirSync(join(dir, "some_dir"));
+ await new Promise<string[]>((resolve, reject) => {
+ readdir(dir, (err, files) => {
+ if (err) reject(err);
+ resolve(files);
+ });
+ })
+ .then((files) =>
+ assertEqualsArrayAnyOrder(files, ["file1.txt", "some_dir", "file2.txt"])
+ )
+ .catch(() => fail())
+ .finally(() => Deno.removeSync(dir, { recursive: true }));
+ },
+});
+
+Deno.test({
+ name: "SYNC: reading empty the directory",
+ fn() {
+ const dir = Deno.makeTempDirSync();
+ assertEquals(readdirSync(dir), []);
+ },
+});
+
+Deno.test({
+ name: "SYNC: reading non-empty directory",
+ fn() {
+ const dir = Deno.makeTempDirSync();
+ Deno.writeTextFileSync(join(dir, "file1.txt"), "hi");
+ Deno.writeTextFileSync(join(dir, "file2.txt"), "hi");
+ Deno.mkdirSync(join(dir, "some_dir"));
+ assertEqualsArrayAnyOrder(
+ readdirSync(dir),
+ ["file1.txt", "some_dir", "file2.txt"],
+ );
+ },
+});