I have a command-line app that reads user input from stdin:
const readline = require('readline');
const os = require('os');
const rl = readline.createInterface({
input: process.stdin,
});
rl.on('line', (line) => {
try {
doSomething();
} catch (e) {
process.stdout.write(`Error: ${e.message}${os.EOL}`);
}
});
To write integration tests, I need to be able to write to stdin to activate the 'line' event. However, calling process.stdin.write(`abc${os.EOL}`) in my test case produces an error:
This socket is closed
How should I resolve this?
Is the only option to skip the command-line integration testing and test doSomething only?
Aucun commentaire:
Enregistrer un commentaire