diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/deno.ts | 12 | ||||
-rw-r--r-- | js/files.ts | 2 | ||||
-rw-r--r-- | js/files_test.ts | 20 |
3 files changed, 30 insertions, 4 deletions
diff --git a/js/deno.ts b/js/deno.ts index 21c93c5d3..869314d2c 100644 --- a/js/deno.ts +++ b/js/deno.ts @@ -4,7 +4,17 @@ /// <amd-module name="deno"/> export { env, exit } from "./os"; export { chdir, cwd } from "./dir"; -export { File, open, stdin, stdout, stderr, read, write, close } from "./files"; +export { + File, + open, + stdin, + stdout, + stderr, + read, + write, + close, + OpenMode +} from "./files"; export { copy, toAsyncIterator, diff --git a/js/files.ts b/js/files.ts index 4392eadf7..e23d19cfe 100644 --- a/js/files.ts +++ b/js/files.ts @@ -29,7 +29,7 @@ export const stdout = new File(1); /** An instance of `File` for stderr. */ export const stderr = new File(2); -type OpenMode = +export type OpenMode = /** Read-only. Default. Starts at beginning of file. */ | "r" /** Read-write. Start at beginning of file. */ diff --git a/js/files_test.ts b/js/files_test.ts index d46a46906..03ad7a7cd 100644 --- a/js/files_test.ts +++ b/js/files_test.ts @@ -30,10 +30,26 @@ test(async function filesToAsyncIterator() { assertEqual(totalSize, 12); }); +testPerm({ write: false }, async function writePermFailure() { + const filename = "tests/hello.txt"; + const writeModes: deno.OpenMode[] = ["r+", "w", "w+", "a", "a+", "x", "x+"]; + for (const mode of writeModes) { + let err; + try { + await deno.open(filename, mode); + } catch (e) { + err = e; + } + assert(!!err); + assertEqual(err.kind, deno.ErrorKind.PermissionDenied); + assertEqual(err.name, "PermissionDenied"); + } +}); + testPerm({ write: true }, async function createFile() { const tempDir = await deno.makeTempDir(); const filename = tempDir + "/test.txt"; - let f = await deno.open(filename, "w"); + const f = await deno.open(filename, "w"); let fileInfo = deno.statSync(filename); assert(fileInfo.isFile()); assert(fileInfo.len === 0); @@ -88,7 +104,7 @@ testPerm({ write: true }, async function openModeWriteRead() { const filename = tempDir + "hello.txt"; const data = encoder.encode("Hello world!\n"); - let file = await deno.open(filename, "w+"); + const file = await deno.open(filename, "w+"); // assert file was created let fileInfo = deno.statSync(filename); assert(fileInfo.isFile()); |