feat(std/node/fs): adding readdir, rename, and some others (#7666)

This commit is contained in:
ali ahmed 2020-10-06 07:35:22 +02:00 committed by GitHub
parent a51408a4bc
commit 40324ff748
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 1366 additions and 0 deletions

View file

@ -0,0 +1,59 @@
import { assertEquals, 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));
},
});
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((resolve, reject) => {
readdir(dir, (err, files) => {
if (err) reject(err);
resolve(files);
});
})
.then((files) =>
assertEquals(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 a 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"));
assertEquals(readdirSync(dir), ["file1.txt", "some_dir", "file2.txt"]);
},
});