diff options
Diffstat (limited to 'std/fs/_util_test.ts')
-rw-r--r-- | std/fs/_util_test.ts | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/std/fs/_util_test.ts b/std/fs/_util_test.ts new file mode 100644 index 000000000..48fc33ecd --- /dev/null +++ b/std/fs/_util_test.ts @@ -0,0 +1,63 @@ +// Copyright the Browserify authors. MIT License. + +import { assertEquals } from "../testing/asserts.ts"; +import * as path from "../path/mod.ts"; +import { isSubdir, getFileInfoType, PathType } from "./_util.ts"; +import { ensureFileSync } from "./ensure_file.ts"; +import { ensureDirSync } from "./ensure_dir.ts"; + +const testdataDir = path.resolve("fs", "testdata"); + +Deno.test("_isSubdir", function (): void { + const pairs = [ + ["", "", false, path.posix.sep], + ["/first/second", "/first", false, path.posix.sep], + ["/first", "/first", false, path.posix.sep], + ["/first", "/first/second", true, path.posix.sep], + ["first", "first/second", true, path.posix.sep], + ["../first", "../first/second", true, path.posix.sep], + ["c:\\first", "c:\\first", false, path.win32.sep], + ["c:\\first", "c:\\first\\second", true, path.win32.sep], + ]; + + pairs.forEach(function (p): void { + const src = p[0] as string; + const dest = p[1] as string; + const expected = p[2] as boolean; + const sep = p[3] as string; + assertEquals( + isSubdir(src, dest, sep), + expected, + `'${src}' should ${expected ? "" : "not"} be parent dir of '${dest}'` + ); + }); +}); + +Deno.test("_getFileInfoType", function (): void { + const pairs = [ + [path.join(testdataDir, "file_type_1"), "file"], + [path.join(testdataDir, "file_type_dir_1"), "dir"], + ]; + + pairs.forEach(function (p): void { + const filePath = p[0] as string; + const type = p[1] as PathType; + switch (type) { + case "file": + ensureFileSync(filePath); + break; + case "dir": + ensureDirSync(filePath); + break; + case "symlink": + // TODO(axetroy): test symlink + break; + } + + const stat = Deno.statSync(filePath); + + Deno.removeSync(filePath, { recursive: true }); + + assertEquals(getFileInfoType(stat), type); + }); +}); |