diff options
Diffstat (limited to 'cli/js')
-rw-r--r-- | cli/js/tests/remove_test.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cli/js/tests/remove_test.ts b/cli/js/tests/remove_test.ts index 4c0bb6768..8de577838 100644 --- a/cli/js/tests/remove_test.ts +++ b/cli/js/tests/remove_test.ts @@ -479,3 +479,48 @@ unitTest({ perms: { write: false } }, async function removeAllPerm(): Promise< assert(err instanceof Deno.errors.PermissionDenied); assertEquals(err.name, "PermissionDenied"); }); + +if (Deno.build.os === "windows") { + unitTest( + { perms: { run: true, write: true, read: true } }, + async function removeFileSymlink(): Promise<void> { + const symlink = Deno.run({ + cmd: ["cmd", "/c", "mklink", "file_link", "bar"], + stdout: "null", + }); + + assert(await symlink.status()); + symlink.close(); + await Deno.remove("file_link"); + let err; + try { + await Deno.lstat("file_link"); + } catch (e) { + err = e; + } + assert(err instanceof Deno.errors.NotFound); + } + ); + + unitTest( + { perms: { run: true, write: true, read: true } }, + async function removeDirSymlink(): Promise<void> { + const symlink = Deno.run({ + cmd: ["cmd", "/c", "mklink", "/d", "dir_link", "bar"], + stdout: "null", + }); + + assert(await symlink.status()); + symlink.close(); + + await Deno.remove("dir_link"); + let err; + try { + await Deno.lstat("dir_link"); + } catch (e) { + err = e; + } + assert(err instanceof Deno.errors.NotFound); + } + ); +} |