diff options
author | Chris Knight <cknight1234@gmail.com> | 2020-05-29 00:39:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-28 19:39:02 -0400 |
commit | fadd93b454d2006f9fe7ee430ed4e4853b792957 (patch) | |
tree | 33cde7fa30b605d04e699e3bc304324376423ad1 /std/node/_fs/_fs_link_test.ts | |
parent | c9f7558cd1afa11767f84a301d048191ebee867d (diff) |
feat(std/node): add link/linkSync polyfill (#5930)
Diffstat (limited to 'std/node/_fs/_fs_link_test.ts')
-rw-r--r-- | std/node/_fs/_fs_link_test.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/std/node/_fs/_fs_link_test.ts b/std/node/_fs/_fs_link_test.ts new file mode 100644 index 000000000..e59984c8c --- /dev/null +++ b/std/node/_fs/_fs_link_test.ts @@ -0,0 +1,67 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +const { test } = Deno; +import { fail, assertEquals } from "../../testing/asserts.ts"; +import { link, linkSync } from "./_fs_link.ts"; +import { assert } from "https://deno.land/std@v0.50.0/testing/asserts.ts"; +const isWindows = Deno.build.os === "windows"; + +test({ + ignore: isWindows, + name: "ASYNC: hard linking files works as expected", + async fn() { + const tempFile: string = await Deno.makeTempFile(); + const linkedFile: string = tempFile + ".link"; + await new Promise((res, rej) => { + link(tempFile, linkedFile, (err) => { + if (err) rej(err); + else res(); + }); + }) + .then(() => { + assertEquals(Deno.statSync(tempFile), Deno.statSync(linkedFile)); + }) + .catch(() => { + fail("Expected to succeed"); + }) + .finally(() => { + Deno.removeSync(tempFile); + Deno.removeSync(linkedFile); + }); + }, +}); + +test({ + ignore: isWindows, + name: "ASYNC: hard linking files passes error to callback", + async fn() { + let failed = false; + await new Promise((res, rej) => { + link("no-such-file", "no-such-file", (err) => { + if (err) rej(err); + else res(); + }); + }) + .then(() => { + fail("Expected to succeed"); + }) + .catch((err) => { + assert(err); + failed = true; + }); + assert(failed); + }, +}); + +test({ + ignore: isWindows, + name: "SYNC: hard linking files works as expected", + fn() { + const tempFile: string = Deno.makeTempFileSync(); + const linkedFile: string = tempFile + ".link"; + linkSync(tempFile, linkedFile); + + assertEquals(Deno.statSync(tempFile), Deno.statSync(linkedFile)); + Deno.removeSync(tempFile); + Deno.removeSync(linkedFile); + }, +}); |