У меня есть функция, которая ищет пользователя в базе данных - в этом случае я хочу «отклонить», так как пользователь не найден.
Если пользователь не найден, вызывается обратный вызовс ошибкой отклонения и вторым параметром (false)
return Login
.findOne({
where: {
id: decoded.loginId,
expireDate: {
$gt: now,
},
},
})
.then(login => done(null, !!login))
.catch(error => done(error, false));
Я подделываю функцию findOne для отклонения:
Login.findOne = sinon.fake.rejects(false);
Как проверить, правильно ли теперь вызывается мой обратный вызов?
// Inside validateToken the above code is implemented
const done = sinon.fake();
await validateToken({
tokenInvalidate: moment().add(1, 'minute').toDate(),
loginId: 1,
}, { server }, done);
done.should.be.calledWith(new Error(false), false);
Я пробовал много параметров, но не похоже, что я могу узнать, что мне следует использовать в качестве параметра здесь.Может я неправильно понял документацию?Я не знаю ... Вот фактический результат:
AssertionError: expected fake to have been called with arguments Error: false, false
Error: false
false
Модули:
"sinon": "^6.2.0",
"sinon-chai": "^3.2.0",
Заранее спасибо