Как проверить пользовательский ввод с помощью командной строки 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
  });
});

Другие вопросы по тегам