diff options
Diffstat (limited to 'js/read_dir_test.ts')
-rw-r--r-- | js/read_dir_test.ts | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/js/read_dir_test.ts b/js/read_dir_test.ts new file mode 100644 index 000000000..43430ed00 --- /dev/null +++ b/js/read_dir_test.ts @@ -0,0 +1,60 @@ +// Copyright 2018 the Deno authors. All rights reserved. MIT license. +import { test, testPerm, assert, assertEqual } from "./test_util.ts"; +import * as deno from "deno"; +import { FileInfo } from "deno"; + +function assertSameContent(files: FileInfo[]) { + let counter = 0; + + for (const file of files) { + if (file.name == "subdir") { + assert(file.isDirectory()); + counter++; + } + + if (file.name === "002_hello.ts") { + assertEqual(file.path, `tests/${file.name}`); + counter++; + } + } + + assertEqual(counter, 2); +} + +testPerm({ write: true }, function readDirSyncSuccess() { + const files = deno.readDirSync("tests/"); + assertSameContent(files); +}); + +test(function readDirSyncNotDir() { + let caughtError = false; + let src; + + try { + src = deno.readDirSync("package.json"); + } catch (err) { + caughtError = true; + assertEqual(err.kind, deno.ErrorKind.Other); + } + assert(caughtError); + assertEqual(src, undefined); +}); + +test(function readDirSyncNotFound() { + let caughtError = false; + let src; + + try { + src = deno.readDirSync("bad_dir_name"); + } catch (err) { + caughtError = true; + assertEqual(err.kind, deno.ErrorKind.NotFound); + } + assert(caughtError); + assertEqual(src, undefined); +}); + +testPerm({ write: true }, async function readDirSuccess() { + const files = await deno.readDir("tests/"); + assertSameContent(files); +}); |