From ea6070b0e85d3b8c2b018fe62bdf78426b83f50b Mon Sep 17 00:00:00 2001 From: Rongjian Zhang Date: Sun, 12 May 2024 15:18:33 +0800 Subject: [PATCH] test: improve coverage of lib/readline.js PR-URL: https://github.com/nodejs/node/pull/38646 Refs: https://coverage.nodejs.org/coverage-16e00a15deafdad0/lib/readline.js.html#L441 Reviewed-By: James M Snell Reviewed-By: Rich Trott Reviewed-By: Michael Dawson Reviewed-By: Zijian Liu Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Antoine du Hamel --- test/parallel/test-readline-interface.js | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index a0946a370f4c11..4f31762bfc7227 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -1061,6 +1061,16 @@ for (let i = 0; i < 12; i++) { rli.close(); } + // Calling only the first question callback + { + const [rli] = getInterface({ terminal }); + rli.question('foo?', common.mustCall((answer) => { + assert.strictEqual(answer, 'bar'); + })); + rli.question('hello?', common.mustNotCall()); + rli.write('bar\n'); + } + // Calling the question multiple times { const [rli] = getInterface({ terminal }); @@ -1329,6 +1339,26 @@ for (let i = 0; i < 12; i++) { rli.close(); }), delay); } + + // Write correctly if paused + { + const [rli] = getInterface({ terminal }); + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, 'bar'); + })); + rli.pause(); + rli.write('bar\n'); + assert.strictEqual(rli.paused, false); + rli.close(); + } + + // Write undefined + { + const [rli] = getInterface({ terminal }); + rli.on('line', common.mustNotCall()); + rli.write(); + rli.close(); + } }); // Ensure that the _wordLeft method works even for large input