diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/dts/lib.deno.ns.d.ts | 8 | ||||
-rw-r--r-- | cli/tests/unit/symlink_test.ts | 43 |
2 files changed, 46 insertions, 5 deletions
diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts index 34f8c2ad5..3db07ba65 100644 --- a/cli/dts/lib.deno.ns.d.ts +++ b/cli/dts/lib.deno.ns.d.ts @@ -2379,8 +2379,8 @@ declare namespace Deno { * * Requires `allow-write` permission. */ export function symlinkSync( - oldpath: string, - newpath: string, + oldpath: string | URL, + newpath: string | URL, options?: SymlinkOptions, ): void; @@ -2396,8 +2396,8 @@ declare namespace Deno { * * Requires `allow-write` permission. */ export function symlink( - oldpath: string, - newpath: string, + oldpath: string | URL, + newpath: string | URL, options?: SymlinkOptions, ): Promise<void>; diff --git a/cli/tests/unit/symlink_test.ts b/cli/tests/unit/symlink_test.ts index 19e83660b..eef993d17 100644 --- a/cli/tests/unit/symlink_test.ts +++ b/cli/tests/unit/symlink_test.ts @@ -1,5 +1,10 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import { assert, assertThrows, unitTest } from "./test_util.ts"; +import { + assert, + assertThrows, + pathToAbsoluteFileUrl, + unitTest, +} from "./test_util.ts"; unitTest( { perms: { read: true, write: true } }, @@ -16,6 +21,24 @@ unitTest( }, ); +unitTest( + { perms: { read: true, write: true } }, + function symlinkSyncURL(): void { + const testDir = Deno.makeTempDirSync(); + const oldname = testDir + "/oldname"; + const newname = testDir + "/newname"; + Deno.mkdirSync(oldname); + Deno.symlinkSync( + pathToAbsoluteFileUrl(oldname), + pathToAbsoluteFileUrl(newname), + ); + const newNameInfoLStat = Deno.lstatSync(newname); + const newNameInfoStat = Deno.statSync(newname); + assert(newNameInfoLStat.isSymlink); + assert(newNameInfoStat.isDirectory); + }, +); + unitTest(function symlinkSyncPerm(): void { assertThrows(() => { Deno.symlinkSync("oldbaddir", "newbaddir"); @@ -36,3 +59,21 @@ unitTest( assert(newNameInfoStat.isDirectory, "NOT DIRECTORY"); }, ); + +unitTest( + { perms: { read: true, write: true } }, + async function symlinkURL(): Promise<void> { + const testDir = Deno.makeTempDirSync(); + const oldname = testDir + "/oldname"; + const newname = testDir + "/newname"; + Deno.mkdirSync(oldname); + await Deno.symlink( + pathToAbsoluteFileUrl(oldname), + pathToAbsoluteFileUrl(newname), + ); + const newNameInfoLStat = Deno.lstatSync(newname); + const newNameInfoStat = Deno.statSync(newname); + assert(newNameInfoLStat.isSymlink, "NOT SYMLINK"); + assert(newNameInfoStat.isDirectory, "NOT DIRECTORY"); + }, +); |