deno.land / std@0.157.0 / node / internal / fs / streams_test.ts

streams_test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { createWriteStream, WriteStream } from "./streams.ts";import { assertEquals } from "../../../testing/asserts.ts";
// Need to wait for file processing to complete within each test to prevent false negatives.async function waiter(writable: WriteStream, interval = 100, maxCount = 50) { for (let i = maxCount; i > 0; i--) { await new Promise((resolve) => setTimeout(resolve, interval)); if (writable.destroyed) return true; } return false;}
Deno.test({ name: "[node/fs.WriteStream] Write data using 'WriteStream()'", async fn() { const tempFile: string = Deno.makeTempFileSync(); const writable = WriteStream(tempFile);
writable.write("hello world"); writable.end("\n");
writable.on("close", () => { const data = Deno.readFileSync(tempFile); Deno.removeSync(tempFile); assertEquals(new TextDecoder("utf-8").decode(data), "hello world\n"); });
assertEquals(await waiter(writable), true); },});
Deno.test({ name: "[node/fs.WriteStream] Write data using 'new WriteStream()'", async fn() { const tempFile: string = Deno.makeTempFileSync(); // deno-lint-ignore ban-ts-comment // @ts-ignore const writable = new WriteStream(tempFile);
writable.write("hello world"); writable.end("\n");
writable.on("close", () => { const data = Deno.readFileSync(tempFile); Deno.removeSync(tempFile); assertEquals(new TextDecoder("utf-8").decode(data), "hello world\n"); });
assertEquals(await waiter(writable), true); },});
Deno.test({ name: "[node/fs.createWriteStream] Write data using 'new createWriteStream()'", async fn() { const tempFile: string = Deno.makeTempFileSync(); // deno-lint-ignore ban-ts-comment // @ts-ignore const writable = new createWriteStream(tempFile);
writable.write("hello world"); writable.end("\n");
writable.on("close", () => { const data = Deno.readFileSync(tempFile); Deno.removeSync(tempFile); assertEquals(new TextDecoder("utf-8").decode(data), "hello world\n"); });
assertEquals(await waiter(writable), true); },});
Deno.test({ name: "[node/fs.createWriteStream] Destroy the stream with an error", async fn() { const tempFile: string = Deno.makeTempFileSync(); const writable = createWriteStream(tempFile);
writable.write("hello world"); writable.destroy(Error("destroy has been called.")), writable.on("close", () => { const data = Deno.readFileSync(tempFile); Deno.removeSync(tempFile); assertEquals(new TextDecoder("utf-8").decode(data), ""); });
writable.on("error", (err: Error) => { assertEquals(err.name, "Error"); assertEquals(err.message, "destroy has been called."); });
assertEquals(await waiter(writable), true); },});
std

Version Info

Tagged at
2 years ago