diff options
Diffstat (limited to 'js/unit_tests.ts')
-rw-r--r-- | js/unit_tests.ts | 182 |
1 files changed, 4 insertions, 178 deletions
diff --git a/js/unit_tests.ts b/js/unit_tests.ts index e1b04d4c4..0e877dea6 100644 --- a/js/unit_tests.ts +++ b/js/unit_tests.ts @@ -1,181 +1,7 @@ // Copyright 2018 the Deno authors. All rights reserved. MIT license. -// This test is executed as part of integration_test.go -// But it can also be run manually: -// ./deno tests.ts - -import { test, testPerm, assert, assertEqual } from "./test_util.ts"; -import * as deno from "deno"; - +// This test is executed as part of tools/test.py +// But it can also be run manually: ./out/debug/deno js/unit_tests.ts import "./compiler_test.ts"; import "./console_test.ts"; - -test(async function tests_test() { - assert(true); -}); - -// 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; - // TODO assert(err instanceof deno.NotFound). - assert(err); - assertEqual(err.name, "deno.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; - // TODO assert(err instanceof deno.NotFound). - assert(err); - assertEqual(err.name, "deno.NotFound"); - } - - assert(caughtError); - assertEqual(badInfo, undefined); -}); - -test(async function tests_readFileSync() { - const data = deno.readFileSync("package.json"); - if (!data.byteLength) { - throw Error( - `Expected positive value for data.byteLength ${data.byteLength}` - ); - } - const decoder = new TextDecoder("utf-8"); - const json = decoder.decode(data); - const pkg = JSON.parse(json); - assertEqual(pkg.name, "deno"); -}); - -/* TODO We should be able to catch specific types. -test(function tests_readFileSync_NotFound() { - let caughtError = false; - let data; - try { - data = deno.readFileSync("bad_filename"); - } catch (e) { - caughtError = true; - assert(e instanceof deno.NotFound); - } - assert(caughtError); - assert(data === undefined); -}); -*/ - -testPerm({ write: true }, function writeFileSync() { - const enc = new TextEncoder(); - const data = enc.encode("Hello"); - const filename = deno.makeTempDirSync() + "/test.txt"; - deno.writeFileSync(filename, data, 0o666); - const dataRead = deno.readFileSync(filename); - const dec = new TextDecoder("utf-8"); - const actual = dec.decode(dataRead); - assertEqual("Hello", actual); -}); - -// For this test to pass we need --allow-write permission. -// Otherwise it will fail with deno.PermissionDenied instead of deno.NotFound. -testPerm({ write: true }, function writeFileSyncFail() { - const enc = new TextEncoder(); - const data = enc.encode("Hello"); - const filename = "/baddir/test.txt"; - // The following should fail because /baddir doesn't exist (hopefully). - let caughtError = false; - try { - deno.writeFileSync(filename, data); - } catch (e) { - caughtError = true; - // TODO assertEqual(e, deno.NotFound); - assertEqual(e.name, "deno.NotFound"); - } - assert(caughtError); -}); - -testPerm({ write: true }, function makeTempDirSync() { - const dir1 = deno.makeTempDirSync({ prefix: "hello", suffix: "world" }); - const dir2 = deno.makeTempDirSync({ prefix: "hello", suffix: "world" }); - // Check that both dirs are different. - assert(dir1 != dir2); - for (const dir of [dir1, dir2]) { - // Check that the prefix and suffix are applied. - const lastPart = dir.replace(/^.*[\\\/]/, ""); - assert(lastPart.startsWith("hello")); - assert(lastPart.endsWith("world")); - } - // Check that the `dir` option works. - const dir3 = deno.makeTempDirSync({ dir: dir1 }); - assert(dir3.startsWith(dir1)); - assert(/^[\\\/]/.test(dir3.slice(dir1.length))); - // Check that creating a temp dir inside a nonexisting directory fails. - let err; - try { - deno.makeTempDirSync({ dir: "/baddir" }); - } catch (err_) { - err = err_; - } - // TODO assert(err instanceof deno.NotFound). - assert(err); - assertEqual(err.name, "deno.NotFound"); -}); - -test(function makeTempDirSyncPerm() { - // makeTempDirSync should require write permissions (for now). - let err; - try { - deno.makeTempDirSync({ dir: "/baddir" }); - } catch (err_) { - err = err_; - } - // TODO assert(err instanceof deno.PermissionDenied). - assert(err); - assertEqual(err.name, "deno.PermissionDenied"); -}); - -testPerm({ net: true }, async function tests_fetch() { - const response = await fetch("http://localhost:4545/package.json"); - const json = await response.json(); - assertEqual(json.name, "deno"); -}); +import "./os_test.ts"; +import "./fetch_test.ts"; |