summaryrefslogtreecommitdiff
path: root/js/stat_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/stat_test.ts')
-rw-r--r--js/stat_test.ts126
1 files changed, 126 insertions, 0 deletions
diff --git a/js/stat_test.ts b/js/stat_test.ts
new file mode 100644
index 000000000..c811b23ab
--- /dev/null
+++ b/js/stat_test.ts
@@ -0,0 +1,126 @@
+// Copyright 2018 the Deno authors. All rights reserved. MIT license.
+import { test, assert, assertEqual } from "./test_util.ts";
+import * as deno from "deno";
+
+// TODO Add tests for modified, accessed, and created fields once there is a way
+// to create temp files.
+test(async function statSyncSuccess() {
+ const packageInfo = deno.statSync("package.json");
+ assert(packageInfo.isFile());
+ assert(!packageInfo.isSymlink());
+
+ const testingInfo = deno.statSync("testing");
+ assert(testingInfo.isDirectory());
+ assert(!testingInfo.isSymlink());
+
+ const srcInfo = deno.statSync("src");
+ assert(srcInfo.isDirectory());
+ assert(!srcInfo.isSymlink());
+});
+
+test(async function statSyncNotFound() {
+ let caughtError = false;
+ let badInfo;
+
+ try {
+ badInfo = deno.statSync("bad_file_name");
+ } catch (err) {
+ caughtError = true;
+ assertEqual(err.kind, deno.ErrorKind.NotFound);
+ assertEqual(err.name, "NotFound");
+ }
+
+ assert(caughtError);
+ assertEqual(badInfo, undefined);
+});
+
+test(async function lstatSyncSuccess() {
+ const packageInfo = deno.lstatSync("package.json");
+ assert(packageInfo.isFile());
+ assert(!packageInfo.isSymlink());
+
+ const testingInfo = deno.lstatSync("testing");
+ assert(!testingInfo.isDirectory());
+ assert(testingInfo.isSymlink());
+
+ const srcInfo = deno.lstatSync("src");
+ assert(srcInfo.isDirectory());
+ assert(!srcInfo.isSymlink());
+});
+
+test(async function lstatSyncNotFound() {
+ let caughtError = false;
+ let badInfo;
+
+ try {
+ badInfo = deno.lstatSync("bad_file_name");
+ } catch (err) {
+ caughtError = true;
+ assertEqual(err.kind, deno.ErrorKind.NotFound);
+ assertEqual(err.name, "NotFound");
+ }
+
+ assert(caughtError);
+ assertEqual(badInfo, undefined);
+});
+
+test(async function statSuccess() {
+ const packageInfo = await deno.stat("package.json");
+ assert(packageInfo.isFile());
+ assert(!packageInfo.isSymlink());
+
+ const testingInfo = await deno.stat("testing");
+ assert(testingInfo.isDirectory());
+ assert(!testingInfo.isSymlink());
+
+ const srcInfo = await deno.stat("src");
+ assert(srcInfo.isDirectory());
+ assert(!srcInfo.isSymlink());
+});
+
+test(async function statNotFound() {
+ let caughtError = false;
+ let badInfo;
+
+ try {
+ badInfo = await deno.stat("bad_file_name");
+ } catch (err) {
+ caughtError = true;
+ assertEqual(err.kind, deno.ErrorKind.NotFound);
+ assertEqual(err.name, "NotFound");
+ }
+
+ assert(caughtError);
+ assertEqual(badInfo, undefined);
+});
+
+test(async function lstatSuccess() {
+ const packageInfo = await deno.lstat("package.json");
+ assert(packageInfo.isFile());
+ assert(!packageInfo.isSymlink());
+
+ const testingInfo = await deno.lstat("testing");
+ assert(!testingInfo.isDirectory());
+ assert(testingInfo.isSymlink());
+
+ const srcInfo = await deno.lstat("src");
+ assert(srcInfo.isDirectory());
+ assert(!srcInfo.isSymlink());
+});
+
+test(async function lstatNotFound() {
+ let caughtError = false;
+ let badInfo;
+
+ try {
+ badInfo = await deno.lstat("bad_file_name");
+ } catch (err) {
+ caughtError = true;
+ assertEqual(err.kind, deno.ErrorKind.NotFound);
+ assertEqual(err.name, "NotFound");
+ }
+
+ assert(caughtError);
+ assertEqual(badInfo, undefined);
+});
+