From bbf88c529587647aaa0089233fea19e961a764f1 Mon Sep 17 00:00:00 2001 From: Shiva Prasanth Date: Sun, 14 Oct 2018 01:33:27 +0530 Subject: Add cwd() and chdir() (#907) --- js/dir_test.ts | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 js/dir_test.ts (limited to 'js/dir_test.ts') diff --git a/js/dir_test.ts b/js/dir_test.ts new file mode 100644 index 000000000..ff55a0e69 --- /dev/null +++ b/js/dir_test.ts @@ -0,0 +1,54 @@ +import { test, testPerm, assert, assertEqual } from "./test_util.ts"; +import * as deno from "deno"; + +test(function dirCwdNotNull() { + assert(deno.cwd() != null); +}); + +testPerm({ write: true }, function dirCwdChdirSuccess() { + const initialdir = deno.cwd(); + const path = deno.makeTempDirSync(); + deno.chdir(path); + const current = deno.cwd(); + if (deno.platform.os === "mac") { + assertEqual(current, "/private" + path); + } else { + assertEqual(current, path); + } + deno.chdir(initialdir); +}); + +testPerm({ write: true }, function dirCwdError() { + // excluding windows since it throws resource busy, while removeSync + if (["linux", "mac"].includes(deno.platform.os)) { + const initialdir = deno.cwd(); + const path = deno.makeTempDirSync(); + deno.chdir(path); + deno.removeSync(path); + try { + deno.cwd(); + throw Error("current directory removed, should throw error"); + } catch (err) { + if (err instanceof deno.DenoError) { + console.log(err.name === "NotFound"); + } else { + throw Error("raised different exception"); + } + } + deno.chdir(initialdir); + } +}); + +testPerm({ write: true }, function dirChdirError() { + const path = deno.makeTempDirSync() + "test"; + try { + deno.chdir(path); + throw Error("directory not available, should throw error"); + } catch (err) { + if (err instanceof deno.DenoError) { + console.log(err.name === "NotFound"); + } else { + throw Error("raised different exception"); + } + } +}); -- cgit v1.2.3