Я пытаюсь проверить все мои диалоги cli, используя oclif
и @oclif/test
. Подсказки сделаны с inquirer
.
Все работает нормально, кроме использования макета .stdin(
.
Извлечение функции выглядит так:
...
const { sessionToken } = await inquirer.prompt([{
type: 'password',
name: 'sessionToken',
message: 'Paste your token:',
validate: token => 'Invalid token.',
}]);
...
Тест код:
describe('with an invalid token', () => {
fancy
.stdout({ print: true })
.command(['login', '-e', 'some@mail.com'])
.stdin("bad_token")
.it('should display invalid token', ctx => {
process.stdin.setEncoding('utf8');
process.stdin.once('data', data => {
expect(data).toEquals("bad_token");
expect(ctx.stdout).to.contain('Invalid token.');
});
});
});
Фактический : тестовый останов на "Вставьте свой токен:"
Ожидается : тест продолжается и отображается " Неверный токен. ", Как при ручном тестировании.