summaryrefslogtreecommitdiff
path: root/cli/js/symlink_test.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-03-04 17:31:14 +0100
committerGitHub <noreply@github.com>2020-03-04 17:31:14 +0100
commit8d96dffa410a149d0fff6115bd97f41fc1fe7459 (patch)
treeb00dc7a78e5030b68741de8bf9dde83b9fa07364 /cli/js/symlink_test.ts
parent30682cf74fa039d3493c74101dca2dbb3a8d49b6 (diff)
refactor: rewrite testPerm into unitTest (#4231)
Rewrite "testPerm" helper function used for testing of internal runtime code. It's been renamed to "unitTest" and provides API that is extensible in the future by accepting optional "UnitTestOptions" argument. "test" helper was also removed and replaced by overloaded version of "unitTest" that takes only function argument. "UnitTestOptions" currently supports "perms" and "skip" options, where former works exactly as first argument to "testPerm" did, while the latter allows to conditionally skip tests.
Diffstat (limited to 'cli/js/symlink_test.ts')
-rw-r--r--cli/js/symlink_test.ts125
1 files changed, 66 insertions, 59 deletions
diff --git a/cli/js/symlink_test.ts b/cli/js/symlink_test.ts
index fbb2ec867..221960bb0 100644
--- a/cli/js/symlink_test.ts
+++ b/cli/js/symlink_test.ts
@@ -1,30 +1,33 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { test, testPerm, assert, assertEquals } from "./test_util.ts";
+import { unitTest, assert, assertEquals } from "./test_util.ts";
-testPerm({ read: true, write: true }, function symlinkSyncSuccess(): void {
- const testDir = Deno.makeTempDirSync();
- const oldname = testDir + "/oldname";
- const newname = testDir + "/newname";
- Deno.mkdirSync(oldname);
- let errOnWindows;
- // Just for now, until we implement symlink for Windows.
- try {
- Deno.symlinkSync(oldname, newname);
- } catch (e) {
- errOnWindows = e;
+unitTest(
+ { perms: { read: true, write: true } },
+ function symlinkSyncSuccess(): void {
+ const testDir = Deno.makeTempDirSync();
+ const oldname = testDir + "/oldname";
+ const newname = testDir + "/newname";
+ Deno.mkdirSync(oldname);
+ let errOnWindows;
+ // Just for now, until we implement symlink for Windows.
+ try {
+ Deno.symlinkSync(oldname, newname);
+ } catch (e) {
+ errOnWindows = e;
+ }
+ if (errOnWindows) {
+ assertEquals(Deno.build.os, "win");
+ assertEquals(errOnWindows.message, "Not implemented");
+ } else {
+ const newNameInfoLStat = Deno.lstatSync(newname);
+ const newNameInfoStat = Deno.statSync(newname);
+ assert(newNameInfoLStat.isSymlink());
+ assert(newNameInfoStat.isDirectory());
+ }
}
- if (errOnWindows) {
- assertEquals(Deno.build.os, "win");
- assertEquals(errOnWindows.message, "Not implemented");
- } else {
- const newNameInfoLStat = Deno.lstatSync(newname);
- const newNameInfoStat = Deno.statSync(newname);
- assert(newNameInfoLStat.isSymlink());
- assert(newNameInfoStat.isDirectory());
- }
-});
+);
-test(function symlinkSyncPerm(): void {
+unitTest(function symlinkSyncPerm(): void {
let err;
try {
Deno.symlinkSync("oldbaddir", "newbaddir");
@@ -37,42 +40,46 @@ test(function symlinkSyncPerm(): void {
// Just for now, until we implement symlink for Windows.
// Symlink with type should succeed on other platforms with type ignored
-testPerm({ write: true }, function symlinkSyncNotImplemented(): void {
- const testDir = Deno.makeTempDirSync();
- const oldname = testDir + "/oldname";
- const newname = testDir + "/newname";
- let err;
- try {
- Deno.symlinkSync(oldname, newname, "dir");
- } catch (e) {
- err = e;
- }
- if (err) {
- assertEquals(Deno.build.os, "win");
- assertEquals(err.message, "Not implemented");
+unitTest(
+ { perms: { write: true } },
+ function symlinkSyncNotImplemented(): void {
+ const testDir = Deno.makeTempDirSync();
+ const oldname = testDir + "/oldname";
+ const newname = testDir + "/newname";
+ let err;
+ try {
+ Deno.symlinkSync(oldname, newname, "dir");
+ } catch (e) {
+ err = e;
+ }
+ if (err) {
+ assertEquals(Deno.build.os, "win");
+ assertEquals(err.message, "Not implemented");
+ }
}
-});
+);
-testPerm({ read: true, write: true }, async function symlinkSuccess(): Promise<
- void
-> {
- const testDir = Deno.makeTempDirSync();
- const oldname = testDir + "/oldname";
- const newname = testDir + "/newname";
- Deno.mkdirSync(oldname);
- let errOnWindows;
- // Just for now, until we implement symlink for Windows.
- try {
- await Deno.symlink(oldname, newname);
- } catch (e) {
- errOnWindows = e;
- }
- if (errOnWindows) {
- assertEquals(errOnWindows.message, "Not implemented");
- } else {
- const newNameInfoLStat = Deno.lstatSync(newname);
- const newNameInfoStat = Deno.statSync(newname);
- assert(newNameInfoLStat.isSymlink());
- assert(newNameInfoStat.isDirectory());
+unitTest(
+ { perms: { read: true, write: true } },
+ async function symlinkSuccess(): Promise<void> {
+ const testDir = Deno.makeTempDirSync();
+ const oldname = testDir + "/oldname";
+ const newname = testDir + "/newname";
+ Deno.mkdirSync(oldname);
+ let errOnWindows;
+ // Just for now, until we implement symlink for Windows.
+ try {
+ await Deno.symlink(oldname, newname);
+ } catch (e) {
+ errOnWindows = e;
+ }
+ if (errOnWindows) {
+ assertEquals(errOnWindows.message, "Not implemented");
+ } else {
+ const newNameInfoLStat = Deno.lstatSync(newname);
+ const newNameInfoStat = Deno.statSync(newname);
+ assert(newNameInfoLStat.isSymlink());
+ assert(newNameInfoStat.isDirectory());
+ }
}
-});
+);