У меня проблемы с получением синусового заглушки, чтобы вернуть/разрешить другую заглушку синуса. Я пользуюсь синонами, чаями, чаи-обещаниями и моккой.Возвращение синусового шлейфа из синусового шлейфа
Я выполняю ряд асинхронных задач в последовательности и код, который я хочу, чтобы проверить выглядеть примерно так:
Terminal.findOneAsync({terminalId: terminalId}).then(function(terminal) {
terminal.lastSeen = timestamp;
return terminal.saveit();
}).then(function(terminal) {
//continue to do other stuff
});
И мою попытку создания заглушек для этого выглядеть следующим образом:
var saveitStub = sinon.stub(Terminal.prototype, 'saveit');
saveitStub.resolves(terminalUpdated);
var findOneStub = sinon.stub(Terminal, 'findOneAsync');
findOneStub.resolves(saveitStub);
Метод «saveit» находится в Terminal.prototype, поэтому мне нужно его заглушить. При попытке запуска этого я получаю ошибку:
Unhandled rejection TypeError: undefined is not a function
на линии:
return terminal.saveit();
Но если сбросить терминальный объект в консоли выглядит хорошо, как и любой другой заглушка объект (по крайней мере, до моего простого ума). Описанный метод saveit() можно назвать «автономным» в тесте. Но всякий раз, когда я возвращаю его с помощью методов «возвращения» или возврата chai-as-обещанного, я получаю эту ошибку.
Любая идея, почему это так?