summaryrefslogtreecommitdiff
path: root/std/fs/empty_dir_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/fs/empty_dir_test.ts')
-rw-r--r--std/fs/empty_dir_test.ts210
1 files changed, 105 insertions, 105 deletions
diff --git a/std/fs/empty_dir_test.ts b/std/fs/empty_dir_test.ts
index 928ba80e6..8f9ca72c3 100644
--- a/std/fs/empty_dir_test.ts
+++ b/std/fs/empty_dir_test.ts
@@ -125,119 +125,119 @@ Deno.test(function emptyDirSyncIfItExist(): void {
}
});
-Deno.test(async function emptyDirPermission(): Promise<void> {
- interface Scenes {
- read: boolean; // --allow-read
- write: boolean; // --allow-write
- async: boolean;
- output: string;
+interface Scenes {
+ read: boolean; // --allow-read
+ write: boolean; // --allow-write
+ async: boolean;
+ output: string;
+}
+const scenes: Scenes[] = [
+ // 1
+ {
+ read: false,
+ write: false,
+ async: true,
+ output: "run again with the --allow-read flag"
+ },
+ {
+ read: false,
+ write: false,
+ async: false,
+ output: "run again with the --allow-read flag"
+ },
+ // 2
+ {
+ read: true,
+ write: false,
+ async: true,
+ output: "run again with the --allow-write flag"
+ },
+ {
+ read: true,
+ write: false,
+ async: false,
+ output: "run again with the --allow-write flag"
+ },
+ // 3
+ {
+ read: false,
+ write: true,
+ async: true,
+ output: "run again with the --allow-read flag"
+ },
+ {
+ read: false,
+ write: true,
+ async: false,
+ output: "run again with the --allow-read flag"
+ },
+ // 4
+ {
+ read: true,
+ write: true,
+ async: true,
+ output: "success"
+ },
+ {
+ read: true,
+ write: true,
+ async: false,
+ output: "success"
}
-
- const testfolder = path.join(testdataDir, "testfolder");
-
- await Deno.mkdir(testfolder);
-
- await Deno.writeFile(
- path.join(testfolder, "child.txt"),
- new TextEncoder().encode("hello world")
- );
-
- const scenes: Scenes[] = [
- // 1
- {
- read: false,
- write: false,
- async: true,
- output: "run again with the --allow-read flag"
- },
- {
- read: false,
- write: false,
- async: false,
- output: "run again with the --allow-read flag"
- },
- // 2
- {
- read: true,
- write: false,
- async: true,
- output: "run again with the --allow-write flag"
- },
- {
- read: true,
- write: false,
- async: false,
- output: "run again with the --allow-write flag"
- },
- // 3
- {
- read: false,
- write: true,
- async: true,
- output: "run again with the --allow-read flag"
- },
- {
- read: false,
- write: true,
- async: false,
- output: "run again with the --allow-read flag"
- },
- // 4
- {
- read: true,
- write: true,
- async: true,
- output: "success"
- },
- {
- read: true,
- write: true,
- async: false,
- output: "success"
- }
- ];
-
- try {
- for (const s of scenes) {
- console.log(
- `test ${s.async ? "emptyDir" : "emptyDirSync"}("testdata/testfolder") ${
- s.read ? "with" : "without"
- } --allow-read & ${s.write ? "with" : "without"} --allow-write`
+];
+for (const s of scenes) {
+ let title = `test ${s.async ? "emptyDir" : "emptyDirSync"}`;
+ title += `("testdata/testfolder") ${s.read ? "with" : "without"}`;
+ title += ` --allow-read & ${s.write ? "with" : "without"} --allow-write`;
+ Deno.test(`[fs] emptyDirPermission ${title}`, async function(): Promise<
+ void
+ > {
+ const testfolder = path.join(testdataDir, "testfolder");
+
+ try {
+ await Deno.mkdir(testfolder);
+
+ await Deno.writeFile(
+ path.join(testfolder, "child.txt"),
+ new TextEncoder().encode("hello world")
);
- const args = [Deno.execPath(), "run"];
+ try {
+ const args = [Deno.execPath(), "run"];
- if (s.read) {
- args.push("--allow-read");
- }
+ if (s.read) {
+ args.push("--allow-read");
+ }
- if (s.write) {
- args.push("--allow-write");
- }
+ if (s.write) {
+ args.push("--allow-write");
+ }
- args.push(
- path.join(testdataDir, s.async ? "empty_dir.ts" : "empty_dir_sync.ts")
- );
- args.push("testfolder");
+ args.push(
+ path.join(testdataDir, s.async ? "empty_dir.ts" : "empty_dir_sync.ts")
+ );
+ args.push("testfolder");
- const { stdout } = Deno.run({
- stdout: "piped",
- cwd: testdataDir,
- args: args
- });
+ const { stdout } = Deno.run({
+ stdout: "piped",
+ cwd: testdataDir,
+ args: args
+ });
- assert(stdout);
+ assert(stdout);
- const output = await Deno.readAll(stdout);
+ const output = await Deno.readAll(stdout);
- assertStrContains(new TextDecoder().decode(output), s.output);
+ assertStrContains(new TextDecoder().decode(output), s.output);
+ } catch (err) {
+ await Deno.remove(testfolder, { recursive: true });
+ throw err;
+ }
+ } finally {
+ // Make the test rerunnable
+ // Otherwise would throw error due to mkdir fail.
+ await Deno.remove(testfolder, { recursive: true });
+ // done
}
- } catch (err) {
- await Deno.remove(testfolder, { recursive: true });
- throw err;
- }
- // Make the test rerunnable
- // Otherwise would throw error due to mkdir fail.
- await Deno.remove(testfolder, { recursive: true });
- // done
-});
+ });
+}