diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/unit/write_file_test.ts | 27 | ||||
-rw-r--r-- | cli/tsc/dts/lib.deno.ns.d.ts | 4 |
2 files changed, 31 insertions, 0 deletions
diff --git a/cli/tests/unit/write_file_test.ts b/cli/tests/unit/write_file_test.ts index 9cbc0b272..945807b3f 100644 --- a/cli/tests/unit/write_file_test.ts +++ b/cli/tests/unit/write_file_test.ts @@ -98,6 +98,20 @@ Deno.test( Deno.test( { permissions: { read: true, write: true } }, + function writeFileSyncCreateNew() { + const enc = new TextEncoder(); + const data = enc.encode("Hello"); + const filename = Deno.makeTempDirSync() + "/test.txt"; + Deno.writeFileSync(filename, data, { createNew: true }); + + assertThrows(() => { + Deno.writeFileSync(filename, data, { createNew: true }); + }, Deno.errors.AlreadyExists); + }, +); + +Deno.test( + { permissions: { read: true, write: true } }, function writeFileSyncAppend() { const enc = new TextEncoder(); const data = enc.encode("Hello"); @@ -218,6 +232,19 @@ Deno.test( Deno.test( { permissions: { read: true, write: true } }, + async function writeFileCreateNew() { + const enc = new TextEncoder(); + const data = enc.encode("Hello"); + const filename = Deno.makeTempDirSync() + "/test.txt"; + await Deno.writeFile(filename, data, { createNew: true }); + await assertRejects(async () => { + await Deno.writeFile(filename, data, { createNew: true }); + }, Deno.errors.AlreadyExists); + }, +); + +Deno.test( + { permissions: { read: true, write: true } }, async function writeFileAppend() { const enc = new TextEncoder(); const data = enc.encode("Hello"); diff --git a/cli/tsc/dts/lib.deno.ns.d.ts b/cli/tsc/dts/lib.deno.ns.d.ts index 1049bf643..da4ec24ab 100644 --- a/cli/tsc/dts/lib.deno.ns.d.ts +++ b/cli/tsc/dts/lib.deno.ns.d.ts @@ -3296,6 +3296,10 @@ declare namespace Deno { /** Sets the option to allow creating a new file, if one doesn't already * exist at the specified path (defaults to `true`). */ create?: boolean; + /** Defaults to `false`. If set to `true`, no file, directory, or symlink is + * allowed to exist at the target location. When createNew is set to `true`, + * `create` is ignored. */ + createNew?: boolean; /** Permissions always applied to file. */ mode?: number; /** An abort signal to allow cancellation of the file write operation. |