summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/deno.ts12
-rw-r--r--js/files.ts2
-rw-r--r--js/files_test.ts20
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());