Skip to content

Commit 4c4cd31

Browse files
y1d7ngjuanarbol
authored andcommitted
test: improve readline/emitKeypressEvents.js coverage
PR-URL: #42908 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
1 parent 115a04f commit 4c4cd31

File tree

1 file changed

+59
-15
lines changed

1 file changed

+59
-15
lines changed

test/parallel/test-readline-emit-keypress-events.js

+59-15
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,66 @@ require('../common');
77
const assert = require('assert');
88
const readline = require('readline');
99
const PassThrough = require('stream').PassThrough;
10-
const stream = new PassThrough();
11-
const sequence = [];
12-
const keys = [];
1310

14-
readline.emitKeypressEvents(stream);
15-
16-
stream.on('keypress', (s, k) => {
17-
sequence.push(s);
18-
keys.push(k);
19-
});
20-
21-
stream.write('foo');
22-
23-
assert.deepStrictEqual(sequence, ['f', 'o', 'o']);
24-
assert.deepStrictEqual(keys, [
11+
const expectedSequence = ['f', 'o', 'o'];
12+
const expectedKeys = [
2513
{ sequence: 'f', name: 'f', ctrl: false, meta: false, shift: false },
2614
{ sequence: 'o', name: 'o', ctrl: false, meta: false, shift: false },
2715
{ sequence: 'o', name: 'o', ctrl: false, meta: false, shift: false },
28-
]);
16+
];
17+
18+
{
19+
const stream = new PassThrough();
20+
const sequence = [];
21+
const keys = [];
22+
23+
readline.emitKeypressEvents(stream);
24+
stream.on('keypress', (s, k) => {
25+
sequence.push(s);
26+
keys.push(k);
27+
});
28+
stream.write('foo');
29+
30+
assert.deepStrictEqual(sequence, expectedSequence);
31+
assert.deepStrictEqual(keys, expectedKeys);
32+
}
33+
34+
{
35+
const stream = new PassThrough();
36+
const sequence = [];
37+
const keys = [];
38+
39+
stream.on('keypress', (s, k) => {
40+
sequence.push(s);
41+
keys.push(k);
42+
});
43+
readline.emitKeypressEvents(stream);
44+
stream.write('foo');
45+
46+
assert.deepStrictEqual(sequence, expectedSequence);
47+
assert.deepStrictEqual(keys, expectedKeys);
48+
}
49+
50+
{
51+
const stream = new PassThrough();
52+
const sequence = [];
53+
const keys = [];
54+
const keypressListener = (s, k) => {
55+
sequence.push(s);
56+
keys.push(k);
57+
};
58+
59+
stream.on('keypress', keypressListener);
60+
readline.emitKeypressEvents(stream);
61+
stream.removeListener('keypress', keypressListener);
62+
stream.write('foo');
63+
64+
assert.deepStrictEqual(sequence, []);
65+
assert.deepStrictEqual(keys, []);
66+
67+
stream.on('keypress', keypressListener);
68+
stream.write('foo');
69+
70+
assert.deepStrictEqual(sequence, expectedSequence);
71+
assert.deepStrictEqual(keys, expectedKeys);
72+
}

0 commit comments

Comments
 (0)