@ oclif / test с `inquirer.prompt` - PullRequest
       45

@ oclif / test с `inquirer.prompt`

0 голосов
/ 10 марта 2020

Я пытаюсь проверить все мои диалоги 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.');
        });
      });
  });

Фактический : тестовый останов на "Вставьте свой токен:"

Ожидается : тест продолжается и отображается " Неверный токен. ", Как при ручном тестировании.

...