Sinon Spy, не регистрирующий его, вызван (Async / Await) - PullRequest
2 голосов
/ 02 октября 2019

Когда я запускаю тест «Должен вызвать getDetails ()», происходит сбой с сообщением о том, что функция была вызвана 0 раз. Если я зарегистрирую шпиона, я увижу, что его опора 'призвана' равна ложномуЯ знаю, что он вызывается, потому что у меня есть console.log в getDetails, и он появляется каждый раз, когда вызывается getMultipleRecords(). Первый тест работает просто отлично, но findAll() - это обещание, поэтому я знаю, что это асинхронная проблема.

Я считаю, что проблема в том, что mocha не соблюдает await. Любая обратная связь будет принята с благодарностью.

Тест:

 describe('getMultipleRecords()', () => {
    let next = () => {};
    let req = {body:{records: [1,2,3]}};
    let res = {};


// Passing
    it('Should call VMBilling.findAll()', async function() {
         var findAll = sinon.spy(VMBilling, 'findAll');

        await recordCtrl.getMultipleRecords(req, res, next)


        //console.log(find)
        sinon.assert.calledOnce(findAll);
    })

// Failing
    it('Should call getDetails()', async function() {
      var gd = sinon.spy(recordCtrl, 'getDetails');

      await recordCtrl.getMultipleRecords(req, res, next)

      sinon.assert.calledOnce(gd);

    })

  })

});

Функция, которую я тестирую

const getMultipleRecords = async (req, res, next) => {
  try {
    console.log('getMultipleRecords()');
    let records = await VMBilling.findAll({
      include: [
        {
          model: ErrorMessage,
        },
      ],
      where: [
        {
          id: req.body.records,
        },
      ],
    });

    let recordsWithDetails = getDetails(records);
    console.log(recordsWithDetails);
    return res.status(200).json(recordsWithDetails);
  } catch (error) {
    next(error);
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...