diff options
Diffstat (limited to 'cli/tests/unit/remove_test.ts')
-rw-r--r-- | cli/tests/unit/remove_test.ts | 148 |
1 files changed, 44 insertions, 104 deletions
diff --git a/cli/tests/unit/remove_test.ts b/cli/tests/unit/remove_test.ts index 94fbba682..42160af5c 100644 --- a/cli/tests/unit/remove_test.ts +++ b/cli/tests/unit/remove_test.ts @@ -1,5 +1,10 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -import { unitTest, assert, assertEquals } from "./test_util.ts"; +import { + unitTest, + assert, + assertThrows, + assertThrowsAsync, +} from "./test_util.ts"; const REMOVE_METHODS = ["remove", "removeSync"] as const; @@ -14,14 +19,9 @@ unitTest( assert(pathInfo.isDirectory); // check exist first await Deno[method](path); // remove // We then check again after remove - let err; - try { + assertThrows(() => { Deno.statSync(path); - } catch (e) { - err = e; - } - // Directory is gone - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -39,14 +39,9 @@ unitTest( assert(fileInfo.isFile); // check exist first await Deno[method](filename); // remove // We then check again after remove - let err; - try { + assertThrows(() => { Deno.statSync(filename); - } catch (e) { - err = e; - } - // File is gone - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -69,14 +64,9 @@ unitTest( assert(fileInfo.isFile); // check exist first await Deno[method](fileUrl); // remove // We then check again after remove - let err; - try { + assertThrows(() => { Deno.statSync(fileUrl); - } catch (e) { - err = e; - } - // File is gone - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -94,23 +84,16 @@ unitTest( assert(pathInfo.isDirectory); // check exist first const subPathInfo = Deno.statSync(subPath); assert(subPathInfo.isDirectory); // check exist first - let err; - try { - // Should not be able to recursively remove + + await assertThrowsAsync(async () => { await Deno[method](path); - } catch (e) { - err = e; - } + }, Error); // TODO(ry) Is Other really the error we should get here? What would Go do? - assert(err instanceof Error); + // NON-EXISTENT DIRECTORY/FILE - try { - // Non-existent + await assertThrowsAsync(async () => { await Deno[method]("/baddir"); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -130,13 +113,9 @@ unitTest( const pathInfo = Deno.lstatSync(danglingSymlinkPath); assert(pathInfo.isSymlink); await Deno[method](danglingSymlinkPath); - let err; - try { + assertThrows(() => { Deno.lstatSync(danglingSymlinkPath); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -159,14 +138,10 @@ unitTest( const symlinkPathInfo = Deno.statSync(validSymlinkPath); assert(symlinkPathInfo.isFile); await Deno[method](validSymlinkPath); - let err; - try { + assertThrows(() => { Deno.statSync(validSymlinkPath); - } catch (e) { - err = e; - } + }, Deno.errors.NotFound); await Deno[method](filePath); - assert(err instanceof Deno.errors.NotFound); } } ); @@ -175,14 +150,9 @@ unitTest({ perms: { write: false } }, async function removePerm(): Promise< void > { for (const method of REMOVE_METHODS) { - let err; - try { + await assertThrowsAsync(async () => { await Deno[method]("/baddir"); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.PermissionDenied); - assertEquals(err.name, "PermissionDenied"); + }, Deno.errors.PermissionDenied); } }); @@ -197,14 +167,12 @@ unitTest( assert(pathInfo.isDirectory); // check exist first await Deno[method](path, { recursive: true }); // remove // We then check again after remove - let err; - try { - Deno.statSync(path); - } catch (e) { - err = e; - } - // Directory is gone - assert(err instanceof Deno.errors.NotFound); + assertThrows( + () => { + Deno.statSync(path); + }, // Directory is gone + Deno.errors.NotFound + ); // REMOVE NON-EMPTY DIRECTORY path = Deno.makeTempDirSync() + "/dir/subdir"; @@ -217,13 +185,10 @@ unitTest( assert(subPathInfo.isDirectory); // check exist first await Deno[method](path, { recursive: true }); // remove // We then check parent directory again after remove - try { + assertThrows(() => { Deno.statSync(path); - } catch (e) { - err = e; - } + }, Deno.errors.NotFound); // Directory is gone - assert(err instanceof Deno.errors.NotFound); } } ); @@ -241,14 +206,10 @@ unitTest( assert(fileInfo.isFile); // check exist first await Deno[method](filename, { recursive: true }); // remove // We then check again after remove - let err; - try { + assertThrows(() => { Deno.statSync(filename); - } catch (e) { - err = e; - } + }, Deno.errors.NotFound); // File is gone - assert(err instanceof Deno.errors.NotFound); } } ); @@ -258,14 +219,10 @@ unitTest({ perms: { write: true } }, async function removeAllFail(): Promise< > { for (const method of REMOVE_METHODS) { // NON-EXISTENT DIRECTORY/FILE - let err; - try { + await assertThrowsAsync(async () => { // Non-existent await Deno[method]("/baddir", { recursive: true }); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } }); @@ -273,14 +230,9 @@ unitTest({ perms: { write: false } }, async function removeAllPerm(): Promise< void > { for (const method of REMOVE_METHODS) { - let err; - try { + await assertThrowsAsync(async () => { await Deno[method]("/baddir", { recursive: true }); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.PermissionDenied); - assertEquals(err.name, "PermissionDenied"); + }, Deno.errors.PermissionDenied); } }); @@ -298,13 +250,9 @@ unitTest( Deno.statSync(path); // check if unix socket exists await Deno[method](path); - let err; - try { + assertThrows(() => { Deno.statSync(path); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } } ); @@ -321,13 +269,9 @@ if (Deno.build.os === "windows") { assert(await symlink.status()); symlink.close(); await Deno.remove("file_link"); - let err; - try { + await assertThrowsAsync(async () => { await Deno.lstat("file_link"); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } ); @@ -343,13 +287,9 @@ if (Deno.build.os === "windows") { symlink.close(); await Deno.remove("dir_link"); - let err; - try { + await assertThrowsAsync(async () => { await Deno.lstat("dir_link"); - } catch (e) { - err = e; - } - assert(err instanceof Deno.errors.NotFound); + }, Deno.errors.NotFound); } ); } |