reduce unnecessary output on tests (#4148)

This commit is contained in:
Yusuke Sakurai 2020-02-28 05:12:04 +09:00 committed by GitHub
parent fa5f3aa600
commit c65d0c63e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 187 additions and 191 deletions

View file

@ -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"
}
];
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");
const testfolder = path.join(testdataDir, "testfolder");
try {
await Deno.mkdir(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`
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");
}
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
});
assert(stdout);
const output = await Deno.readAll(stdout);
assertStrContains(new TextDecoder().decode(output), s.output);
} catch (err) {
await Deno.remove(testfolder, { recursive: true });
throw err;
}
if (s.write) {
args.push("--allow-write");
}
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
});
assert(stdout);
const output = await Deno.readAll(stdout);
assertStrContains(new TextDecoder().decode(output), s.output);
} 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
});
});
}