Skip to content

Commit 48b1ffd

Browse files
committed
organize 'Stream" tests; add tests for 'Stream.Writable.make';
1 parent 0372525 commit 48b1ffd

File tree

10 files changed

+73
-40
lines changed

10 files changed

+73
-40
lines changed

.gitignore

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,7 @@ bsb
88
*.bs.js
99
package-lock.json
1010

11-
src/ScratchPad.re
1211
src/ScratchPadJs.js
12+
src/ScratchRE.re
13+
src/ScratchML.ml
1314
src/Events.re
14-
15-
src/Errors__2.re
16-
src/Process__2.re
17-
src/Stream__2.re
18-
src/Stream__3.re
19-
src/Fs__2.re
20-
src/Crypto__2.re
21-

__tests__/Stream_test.re

Lines changed: 0 additions & 30 deletions
This file was deleted.

bsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"subdirs": true
88
},
99
{
10-
"dir": "__tests__",
10+
"dir": "test",
1111
"subdirs": true,
1212
"type": "dev"
1313
},

test/__tests__/Stream_test.re

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
open Jest;
2+
3+
describe("Stream", () => {
4+
testAsync("Stream.Readable.make should return a defined value", resolve => {
5+
open! ExpectJs;
6+
open StreamTestLib;
7+
let readable = makeReadableEmpty();
8+
expect(readable->Js.Undefined.return) |> toBeDefined |> resolve;
9+
});
10+
11+
testAsync(
12+
"Stream.Readable.make should return an instance of 'Readable'", resolve => {
13+
open! ExpectJs;
14+
open StreamTestLib;
15+
let readable = makeReadableEmpty();
16+
expect(readable->Internal__JsTypeReflection.constructorName)
17+
|> toBe("Readable")
18+
|> resolve;
19+
});
20+
21+
testAsync("Stream.Writable.make should return a defined value", resolve => {
22+
open! ExpectJs;
23+
open StreamTestLib;
24+
let writable = makeWritableEmpty();
25+
expect(writable->Js.Undefined.return) |> toBeDefined |> resolve;
26+
});
27+
28+
testAsync(
29+
"Stream.Writable.make should return an instance of 'Writable'", resolve => {
30+
open! ExpectJs;
31+
open StreamTestLib;
32+
let writable = makeWritableEmpty();
33+
expect(writable->Internal__JsTypeReflection.constructorName)
34+
|> toBe("Writable")
35+
|> resolve;
36+
});
37+
38+
testAsync("Stream.Readable.pipe returns a writable stream", resolve => {
39+
open! ExpectJs;
40+
open StreamTestLib;
41+
let readable = makeReadableEmpty();
42+
let writable = makeWritableEmpty();
43+
expect(Stream.pipe(readable, writable)) |> toBe(writable) |> resolve;
44+
});
45+
});

test/test_lib/StreamTestLib.re

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/** Creates a readable stream with no functionality */
2+
let makeReadableEmpty = () => {
3+
open Stream.Readable;
4+
let options =
5+
makeOptions(
6+
~destroy=[@bs.this] (_, _, done_) => {done_(~err=None)},
7+
~read=[@bs.this] (_, _) => (),
8+
~autoDestroy=true,
9+
(),
10+
);
11+
make(options);
12+
};
13+
14+
/** Creates a writable stream with no functionality */
15+
let makeWritableEmpty = () => {
16+
open Stream.Writable;
17+
let options =
18+
makeOptions(
19+
~destroy=[@bs.this] (_, _, done_) => {done_(~err=None)},
20+
~write=[@bs.this] (_, _, _) => (),
21+
~autoDestroy=true,
22+
(),
23+
);
24+
make(options);
25+
};

0 commit comments

Comments
 (0)