mirror of
https://github.com/denoland/deno.git
synced 2025-09-28 21:24:48 +00:00
feat(std/fs/node): adding some functions (#7921)
This commit is contained in:
parent
f75bd89aff
commit
5bed06fb94
17 changed files with 1403 additions and 0 deletions
71
std/node/_fs/_fs_readdir_test.ts
Normal file
71
std/node/_fs/_fs_readdir_test.ts
Normal file
|
@ -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"],
|
||||
);
|
||||
},
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue