Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit fd195b4

Browse filesBrowse files
Italo A. CasasMylesBorins
authored andcommitted
test: stream readable resumeScheduled state
PR-URL: #10299 Ref: #8683 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 135a7c9 commit fd195b4
Copy full SHA for fd195b4

File tree

Expand file treeCollapse file tree

1 file changed

+67
-0
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+67
-0
lines changed
Open diff view settings
Collapse file
+67Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
'use strict';
2+
const common = require('../common');
3+
4+
// Testing Readable Stream resumeScheduled state
5+
6+
const assert = require('assert');
7+
const stream = require('stream');
8+
const Readable = stream.Readable;
9+
const Writable = stream.Writable;
10+
11+
{
12+
// pipe() test case
13+
const r = new Readable({ read() {} });
14+
const w = new Writable();
15+
16+
// resumeScheduled should start = `false`.
17+
assert.strictEqual(r._readableState.resumeScheduled, false);
18+
19+
// calling pipe() should change the state value = true.
20+
r.pipe(w);
21+
assert.strictEqual(r._readableState.resumeScheduled, true);
22+
23+
process.nextTick(common.mustCall(() => {
24+
assert.strictEqual(r._readableState.resumeScheduled, false);
25+
}));
26+
}
27+
28+
{
29+
// 'data' listener test case
30+
const r = new Readable({ read() {} });
31+
32+
// resumeScheduled should start = `false`.
33+
assert.strictEqual(r._readableState.resumeScheduled, false);
34+
35+
r.push(Buffer.from([1, 2, 3]));
36+
37+
// adding 'data' listener should change the state value
38+
r.on('data', common.mustCall(() => {
39+
assert.strictEqual(r._readableState.resumeScheduled, false);
40+
}));
41+
assert.strictEqual(r._readableState.resumeScheduled, true);
42+
43+
process.nextTick(common.mustCall(() => {
44+
assert.strictEqual(r._readableState.resumeScheduled, false);
45+
}));
46+
}
47+
48+
{
49+
// resume() test case
50+
const r = new Readable({ read() {} });
51+
52+
// resumeScheduled should start = `false`.
53+
assert.strictEqual(r._readableState.resumeScheduled, false);
54+
55+
// Calling resume() should change the state value.
56+
r.resume();
57+
assert.strictEqual(r._readableState.resumeScheduled, true);
58+
59+
r.on('resume', common.mustCall(() => {
60+
// The state value should be `false` again
61+
assert.strictEqual(r._readableState.resumeScheduled, false);
62+
}));
63+
64+
process.nextTick(common.mustCall(() => {
65+
assert.strictEqual(r._readableState.resumeScheduled, false);
66+
}));
67+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.