Этот тест, написанный с помощью jest + mockin goose, каждый раз терпит неудачу. Где полученное значение не определено.
Я пробовал несколько вариантов с ним (также используя .then ()), и я не знаю, почему оно не работает. Я повторно использовал какой-то другой мой код, который почти схож с тем, где он работает, но в этом сценарии это не так, и я не могу на всю жизнь понять, почему! Любая помощь приветствуется.
const mockingoose = require('mockingoose').default;
const Foo = require('../../../app/models/foo');
const att = require('../../../app/utils/foo');
it('getFooData', async () => {
const doc = [{
//...
}];
mockingoose(Foo).toReturn(doc, 'find');
await expect(att.getFooData({}, {})).resolves.toBe(doc);
}
И функция, для которой я пишу тест:
async function getFooData(query, options) {
try {
const data = await Foo.find(query, options);
console.log('got data:', data );
return data;
} catch (e) {
// ...
}
}
Обратите внимание, что журнал консоли также дает неопределенное значение. Mockin goose mock, который я использовал, отлично работает для другой модели.
Интересно, если я изменю функцию, я проверяю, удалив asyn c и жду. Я вернул DocumentQuery. Но я не уверен, что делать с этим с другой стороны, поскольку я также не могу получить какую-либо выгоду от этого. Использование result._do c не дает ничего полезного.