У меня есть метод инициализатора, вызывающий другой метод, который возвращает обещание, например:
initStuffAfterLoad() {
const _this = this;
const theInterval = window.setInterval(function() {
if (thing) {
window.clearInterval(theInterval);
_this.getBanana()
.then(response => {
_this.getApple(response, _this);
});
}
}, 100);
}
, и мне нужно проверить, был ли вызван getBanana
(jest / sinon).Пока у меня есть:
test('init function calls getBanana', () => {
let thing = true
const getBananaSpy = sinon.spy();
sinon.stub(TheClass.prototype, 'getBanana').callsFake(getBananaSpy).resolves();
jest.useFakeTimers();
TheClass.prototype.initStuffAfterLoad();
jest.runOnlylPendingTimers();
expect(getBananaSpy.called).toBeTruthy();
TheClass.prototype.getBanana.restore();
});
Однако он все еще получает false
при утверждении.Я полагаю, что не правильно справляюсь с частью Promise - как лучше всего это сделать?