diff options
Diffstat (limited to 'std/node/_fs/_fs_close_test.ts')
-rw-r--r-- | std/node/_fs/_fs_close_test.ts | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/std/node/_fs/_fs_close_test.ts b/std/node/_fs/_fs_close_test.ts index 8bcd662c9..1ea324cb4 100644 --- a/std/node/_fs/_fs_close_test.ts +++ b/std/node/_fs/_fs_close_test.ts @@ -1,6 +1,6 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. const { test } = Deno; -import { fail, assert } from "../../testing/asserts.ts"; +import { fail, assert, assertThrows } from "../../testing/asserts.ts"; import { close, closeSync } from "./_fs_close.ts"; test({ @@ -12,7 +12,7 @@ test({ assert(Deno.resources()[file.rid]); await new Promise((resolve, reject) => { close(file.rid, (err) => { - if (err) reject(); + if (err !== null) reject(); else resolve(); }); }) @@ -29,6 +29,38 @@ test({ }); test({ + name: "ASYNC: Invalid fd", + async fn() { + await new Promise((resolve, reject) => { + close(-1, (err) => { + if (err !== null) return resolve(); + reject(); + }); + }); + }, +}); + +test({ + name: "close callback should be asynchronous", + async fn() { + const tempFile: string = Deno.makeTempFileSync(); + const file: Deno.File = Deno.openSync(tempFile); + + let foo: string; + const promise = new Promise((resolve) => { + close(file.rid, () => { + assert(foo === "bar"); + resolve(); + }); + foo = "bar"; + }); + + await promise; + Deno.removeSync(tempFile); + }, +}); + +test({ name: "SYNC: File is closed", fn() { const tempFile: string = Deno.makeTempFileSync(); @@ -40,3 +72,10 @@ test({ Deno.removeSync(tempFile); }, }); + +test({ + name: "SYNC: Invalid fd", + fn() { + assertThrows(() => closeSync(-1)); + }, +}); |