ECC/tests/lib/setup-readline-cancellation...

27 lines
785 B
JavaScript

'use strict';
const assert = require('assert');
const { EventEmitter } = require('events');
const { questionWithCancellation } = require('../../scripts/setup');
async function run() {
const terminal = new EventEmitter();
terminal.question = () => new Promise(() => {});
const pendingAnswer = questionWithCancellation(terminal, 'Choose: ');
terminal.emit('close');
await assert.rejects(
pendingAnswer,
error => error.code === 'ABORT_ERR' && /readline was closed/i.test(error.message)
);
console.log(' ✓ readline close rejects an otherwise unresolved question');
console.log('\nResults: Passed: 1, Failed: 0');
}
run().catch(error => {
console.log(`${error.message}`);
console.log('\nResults: Passed: 0, Failed: 1');
process.exitCode = 1;
});