У меня есть приложение командной строки, которое читает пользовательский ввод из stdin
:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
});
rl.on('line', (line) => {
doSomething();
});
Чтобы писать интеграционные тесты, мне нужно иметь возможность писать в stdin
, чтобы активировать 'line'
событие.Однако вызов process.stdin.write(`abc${os.EOL}`)
в моем тестовом случае приводит к ошибке (поскольку поток является однонаправленным только для чтения):
Этот сокет закрыт
Как мне разрешитьthis?
Является ли единственным вариантом пропустить тестирование интеграции командной строки и проверить только doSomething
?