diff options
Diffstat (limited to 'std/node/_fs/_fs_readlink_test.ts')
| -rw-r--r-- | std/node/_fs/_fs_readlink_test.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/std/node/_fs/_fs_readlink_test.ts b/std/node/_fs/_fs_readlink_test.ts new file mode 100644 index 000000000..202b9e227 --- /dev/null +++ b/std/node/_fs/_fs_readlink_test.ts @@ -0,0 +1,67 @@ +const { test } = Deno; +import { readlink, readlinkSync } from "./_fs_readlink.ts"; +import { assertEquals, assert } from "../../testing/asserts.ts"; + +const testDir = Deno.makeTempDirSync(); +const oldname = testDir + "/oldname"; +const newname = testDir + "/newname"; + +if (Deno.build.os !== "win") { + Deno.symlinkSync(oldname, newname); +} + +test({ + name: "readlinkSuccess", + skip: Deno.build.os === "win", + async fn() { + const data = await new Promise((res, rej) => { + readlink(newname, (err, data) => { + if (err) { + rej(err); + } + res(data); + }); + }); + + assertEquals(typeof data, "string"); + assertEquals(data as string, oldname); + } +}); + +test({ + name: "readlinkEncodeBufferSuccess", + skip: Deno.build.os === "win", + async fn() { + const data = await new Promise((res, rej) => { + readlink(newname, { encoding: "buffer" }, (err, data) => { + if (err) { + rej(err); + } + res(data); + }); + }); + + assert(data instanceof Uint8Array); + assertEquals(new TextDecoder().decode(data as Uint8Array), oldname); + } +}); + +test({ + name: "readlinkSyncSuccess", + skip: Deno.build.os === "win", + fn() { + const data = readlinkSync(newname); + assertEquals(typeof data, "string"); + assertEquals(data as string, oldname); + } +}); + +test({ + name: "readlinkEncodeBufferSuccess", + skip: Deno.build.os === "win", + fn() { + const data = readlinkSync(newname, { encoding: "buffer" }); + assert(data instanceof Uint8Array); + assertEquals(new TextDecoder().decode(data as Uint8Array), oldname); + } +}); |
