Модульное тестирование Inquirer с Jest - PullRequest
0 голосов
/ 25 ноября 2018

Я пытался разобраться в поиске на разных форумах, но не смог найти то, что искал.Отчасти из-за моего невежества NodeJS.Я только начинаю.

Моя задача состоит в том, чтобы на основе Jest / Mocha CLI модульного тестирования на основе запросов.Как мне посмеяться и проверить это.

Мой cli.js выглядит следующим образом -

var inquirer = require('inquirer');

var question = {
  name: 'name',
  message: 'Enter your name : '
};

inquirer
.prompt([question])
.then (function(response) {
    console.log(JSON.stringify(response))
    }
);

Если бы я просто убедился, что переданное пользователем значение не может быть длиннее 10 символовКак мне написать тест для этого.

Может кто-нибудь указать, каким будет код моего юнит-теста для этого через Jest (конечно, с использованием любого из насмешливых пакетов).

Заранее спасибо за вашу помощь!

1 Ответ

0 голосов
/ 23 мая 2019

Cli.js

const inquirer = require('inquirer');

const validateNameResponse = response => response.length <= 10;
const handleAnswers = answers = {
// whatever you want to do with answers
};

const question = {
  type: 'input',
  name: 'name',
  message: 'Enter your name : ',
  validate: validateNameResponse
};

inquirer
.prompt([question])
.then (handleAnswers);

module.exports = {
  validateNameResponse,
};

Cli.unit.test.js (Cli.unit.test - это файл в том же каталоге)

const {
  validateNameResponse,
} = require('./cli');
describe('cli', () => {

  for(let i =0; i <= 10; i++;) {
    it(`should have function validateNameResponse pass inputted name that is ${i} characters long`, () => {
      const name='a'.repeat(i);
      expect(validateNameResponse(name)).toBe(true)
    });
  }

  it('should have function validateNameResponse fail inputted name that is more than 10 characters', () => {
    const name = 'a'.repeat(11);
    expect(validateNameResponse(name)).toBe(false);
  });
});
...