Я понял это, но я все еще не могу сказать, как это работает и как это должно быть проверено (корректно)
Проблема с моим кодом была: только последняя функция, вызванная в цепочке "async ", поэтому, когда имитируете это, только fetch
должно быть async
Вот мой тестовый код
const objectCreateStub = sandbox.stub(Object, 'create').callsFake(function (data) { // Notice here fake function IS NOT async
console.log(data
return {
fetch: async () => { // Here we "mock" the fetch function and it MUST be async !
return newTest
}
};
});
И если вы не используете fetch
, mock должен выглядеть следующим образом:
const objectCreateStub = sandbox.stub(Object, 'create').callsFake(async function(data) { // here fake function MUST BE async
console.log(data)
});
Если вы понимаете, как работают ватерлиновые запросы и почему мы должны делать этот обходной путь, пожалуйста, опубликуйте другой ответ, потому что мой код работает, но у меня все еще так много вопросов: /