Skip to content

Commit 2bc773d

Browse files
committed
Add new tests for 'Stream.destroy' with error handling;
1 parent 0f3b427 commit 2bc773d

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

test/__tests__/Stream_test.re

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
open Jest;
22

33
describe("Stream", () => {
4-
testAsync("Stream.Readable.make should return a defined value", resolve => {
4+
testAsync("'Stream.Readable.make' should return a defined value", resolve => {
55
open! ExpectJs;
66
open StreamTestLib;
77
let readable = makeReadableEmpty();
88
expect(readable->Js.Undefined.return) |> toBeDefined |> resolve;
99
});
1010

1111
testAsync(
12-
"Stream.Readable.make should return an instance of 'Readable'", resolve => {
12+
"'Stream.Readable.make' should return an instance of 'Readable'", resolve => {
1313
open! ExpectJs;
1414
open StreamTestLib;
1515
let readable = makeReadableEmpty();
@@ -18,15 +18,15 @@ describe("Stream", () => {
1818
|> resolve;
1919
});
2020

21-
testAsync("Stream.Writable.make should return a defined value", resolve => {
21+
testAsync("'Stream.Writable.make' should return a defined value", resolve => {
2222
open! ExpectJs;
2323
open StreamTestLib;
2424
let writable = makeWritableEmpty();
2525
expect(writable->Js.Undefined.return) |> toBeDefined |> resolve;
2626
});
2727

2828
testAsync(
29-
"Stream.Writable.make should return an instance of 'Writable'", resolve => {
29+
"'Stream.Writable.make' should return an instance of 'Writable'", resolve => {
3030
open! ExpectJs;
3131
open StreamTestLib;
3232
let writable = makeWritableEmpty();
@@ -35,11 +35,36 @@ describe("Stream", () => {
3535
|> resolve;
3636
});
3737

38-
testAsync("Stream.Readable.pipe returns a writable stream", resolve => {
38+
testAsync("'Stream.Readable.pipe' returns a writable stream", resolve => {
3939
open! ExpectJs;
4040
open StreamTestLib;
4141
let readable = makeReadableEmpty();
4242
let writable = makeWritableEmpty();
4343
expect(Stream.pipe(readable, writable)) |> toBe(writable) |> resolve;
4444
});
45-
});
45+
46+
testAsync(
47+
"'Stream.Readable.destroyWithError' should emit 'error' event", resolve => {
48+
open! ExpectJs;
49+
open! Errors;
50+
let dummyError = Error.make("Destroyed")->Error.toJsExn;
51+
let () =
52+
StreamTestLib.makeReadableEmpty()
53+
->Stream.onError(err => {
54+
Console.(console->dir(err));
55+
expect(err) |> toEqual(dummyError) |> resolve;
56+
})
57+
->Stream.destroyWithError(dummyError)
58+
->ignore;
59+
();
60+
});
61+
62+
testAsync(
63+
"'Stream.Readable.destroy' should return the exact same instance of 'Readable'",
64+
resolve => {
65+
open! ExpectJs;
66+
let readable = StreamTestLib.makeReadableEmpty();
67+
expect(readable->Stream.destroy) |> toBe(readable) |> resolve;
68+
},
69+
);
70+
});

0 commit comments

Comments
 (0)