Как проверить пользовательский ввод с помощью командной строки cli-ux в oclif?
Я создаю приложение cli, используя oclif. Пользователь выполняет команду, и клиент спрашивает его, хочет ли он продолжить (да / нет ответа).
Я пытаюсь проверить команду, которая использует приглашение cli-ux. Я хочу смоделировать взаимодействие с пользователем, чтобы ввести слово "да".
Как я могу это сделать? Я попробовал это:
describe('mycommand', () => {
test
.stdout()
.command(['mycommand', 'action'])
.stdin('y')
.it('it shoud do someting', ctx => {});
});
1 ответ
В связи с быстрым тестированием Oclif я смог найти решение.
Будьте осторожны, когда вы спрашиваете пользователя, потому что вы можете использовать cli.prompt
или же cli.confirm
, В моем случае я использую cli.confirm
Таким образом, возможный тест может быть:
describe('it should clean items in done list', () => {
test
.stub(cli, 'confirm', () => async () => 'Y')
.stdout()
.command(['clean', 'done'])
.it('it shoud clean items in done list', ctx => {
// test
});
});