summaryrefslogtreecommitdiff
path: root/test/parallel/test-readline-interface.js
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2020-01-20 16:50:50 +0100
committerRuben Bridgewater <ruben@bridgewater.de>2020-02-05 13:59:54 +0100
commit1fb4bd1fc4b970c5154159ad6734bc722052af3b (patch)
treeee98d04c731aa76bd08a93bf7270aca18118d7e7 /test/parallel/test-readline-interface.js
parentf295ba5d2ce13c2a53f405d5915ad920431331be (diff)
downloadnode-new-1fb4bd1fc4b970c5154159ad6734bc722052af3b.tar.gz
test: abstract common assertions in readline-interface test
PR-URL: https://github.com/nodejs/node/pull/31423 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'test/parallel/test-readline-interface.js')
-rw-r--r--test/parallel/test-readline-interface.js143
1 files changed, 41 insertions, 102 deletions
diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js
index 0a5f27b734..175f2933d5 100644
--- a/test/parallel/test-readline-interface.js
+++ b/test/parallel/test-readline-interface.js
@@ -56,6 +56,12 @@ function getInterface(options) {
return [rli, fi];
}
+function assertCursorRowsAndCols(rli, rows, cols) {
+ const cursorPos = rli.getCursorPos();
+ assert.strictEqual(cursorPos.rows, rows);
+ assert.strictEqual(cursorPos.cols, cols);
+}
+
[
undefined,
50,
@@ -338,9 +344,7 @@ function getInterface(options) {
const [rli] = getInterface({ terminal: true });
const expectedLines = ['foo'];
rli.question(expectedLines[0], () => rli.close());
- const cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, expectedLines[0].length);
+ assertCursorRowsAndCols(rli, 0, expectedLines[0].length);
rli.close();
}
@@ -349,9 +353,8 @@ function getInterface(options) {
const [rli] = getInterface({ terminal: true });
const expectedLines = ['foo', 'bar'];
rli.question(expectedLines.join('\n'), () => rli.close());
- const cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, expectedLines.length - 1);
- assert.strictEqual(cursorPos.cols, expectedLines.slice(-1)[0].length);
+ assertCursorRowsAndCols(
+ rli, expectedLines.length - 1, expectedLines.slice(-1)[0].length);
rli.close();
}
@@ -360,13 +363,9 @@ function getInterface(options) {
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', 'the quick brown fox');
fi.emit('keypress', '.', { ctrl: true, name: 'a' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
fi.emit('keypress', '.', { ctrl: true, name: 'e' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
rli.close();
}
@@ -374,30 +373,20 @@ function getInterface(options) {
// Back and Forward one character
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', 'the quick brown fox');
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
// Back one character
fi.emit('keypress', '.', { ctrl: true, name: 'b' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 18);
+ assertCursorRowsAndCols(rli, 0, 18);
// Back one character
fi.emit('keypress', '.', { ctrl: true, name: 'b' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 17);
+ assertCursorRowsAndCols(rli, 0, 17);
// Forward one character
fi.emit('keypress', '.', { ctrl: true, name: 'f' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 18);
+ assertCursorRowsAndCols(rli, 0, 18);
// Forward one character
fi.emit('keypress', '.', { ctrl: true, name: 'f' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
rli.close();
}
@@ -408,15 +397,11 @@ function getInterface(options) {
// Move left one character/code point
fi.emit('keypress', '.', { name: 'left' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
// Move right one character/code point
fi.emit('keypress', '.', { name: 'right' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 2);
+ assertCursorRowsAndCols(rli, 0, 2);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '💻');
@@ -432,14 +417,10 @@ function getInterface(options) {
// Move left one character/code point
fi.emit('keypress', '.', { name: 'left' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
fi.emit('data', '🐕');
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 2);
+ assertCursorRowsAndCols(rli, 0, 2);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '🐕💻');
@@ -455,14 +436,10 @@ function getInterface(options) {
// Move left one character/code point
fi.emit('keypress', '.', { name: 'right' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 2);
+ assertCursorRowsAndCols(rli, 0, 2);
fi.emit('data', '🐕');
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 4);
+ assertCursorRowsAndCols(rli, 0, 4);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '💻🐕');
@@ -476,21 +453,13 @@ function getInterface(options) {
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', 'the quick brown fox');
fi.emit('keypress', '.', { ctrl: true, name: 'left' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 16);
+ assertCursorRowsAndCols(rli, 0, 16);
fi.emit('keypress', '.', { meta: true, name: 'b' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 10);
+ assertCursorRowsAndCols(rli, 0, 10);
fi.emit('keypress', '.', { ctrl: true, name: 'right' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 16);
+ assertCursorRowsAndCols(rli, 0, 16);
fi.emit('keypress', '.', { meta: true, name: 'f' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
rli.close();
}
@@ -554,15 +523,11 @@ function getInterface(options) {
{
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', 'the quick brown fox');
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
// Delete left character
fi.emit('keypress', '.', { ctrl: true, name: 'h' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 18);
+ assertCursorRowsAndCols(rli, 0, 18);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, 'the quick brown fo');
}));
@@ -574,14 +539,10 @@ function getInterface(options) {
{
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', '💻');
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 2);
+ assertCursorRowsAndCols(rli, 0, 2);
// Delete left character
fi.emit('keypress', '.', { ctrl: true, name: 'h' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '');
}));
@@ -596,15 +557,11 @@ function getInterface(options) {
// Go to the start of the line
fi.emit('keypress', '.', { ctrl: true, name: 'a' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
// Delete right character
fi.emit('keypress', '.', { ctrl: true, name: 'd' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, 'he quick brown fox');
}));
@@ -619,15 +576,11 @@ function getInterface(options) {
// Go to the start of the line
fi.emit('keypress', '.', { ctrl: true, name: 'a' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
// Delete right character
fi.emit('keypress', '.', { ctrl: true, name: 'd' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '');
}));
@@ -639,15 +592,11 @@ function getInterface(options) {
{
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.emit('data', 'the quick brown fox');
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 19);
+ assertCursorRowsAndCols(rli, 0, 19);
// Delete from current to start of line
fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'backspace' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '');
}));
@@ -662,15 +611,11 @@ function getInterface(options) {
// Go to the start of the line
fi.emit('keypress', '.', { ctrl: true, name: 'a' });
- let cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
// Delete from current to end of line
fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'delete' });
- cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 0);
+ assertCursorRowsAndCols(rli, 0, 0);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, '');
}));
@@ -683,9 +628,7 @@ function getInterface(options) {
const [rli, fi] = getInterface({ terminal: true, prompt: '' });
fi.columns = 10;
fi.emit('data', 'multi-line text');
- const cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 1);
- assert.strictEqual(cursorPos.cols, 5);
+ assertCursorRowsAndCols(rli, 1, 5);
rli.close();
}
@@ -697,9 +640,7 @@ function getInterface(options) {
});
fi.columns = 10;
fi.emit('data', 't');
- const cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 4);
- assert.strictEqual(cursorPos.cols, 3);
+ assertCursorRowsAndCols(rli, 4, 3);
rli.close();
}
@@ -709,9 +650,7 @@ function getInterface(options) {
const lines = ['line 1', 'line 2', 'line 3'];
fi.emit('data', lines.join('\n'));
fi.emit('keypress', '.', { ctrl: true, name: 'l' });
- const cursorPos = rli.getCursorPos();
- assert.strictEqual(cursorPos.rows, 0);
- assert.strictEqual(cursorPos.cols, 6);
+ assertCursorRowsAndCols(rli, 0, 6);
rli.on('line', common.mustCall((line) => {
assert.strictEqual(line, 'line 3');
}));