Я пытаюсь смоделировать асинхронную функцию, которая экспортируется как экспорт по умолчанию, но все, что я получаю, это TypeError: Невозможно прочитать свойство 'then' из неопределенного
Что япытаюсь смоделировать это config.js :
const configureEnvironment = async (nativeConfig) => {
return { await whatever() }
}
Файл, который я тестирую, Scene.js :
import configureEnvironment from './config';
class Scene extends React.Component {
constructor(props) {
nativeConfig = {};
configureEnfironment(nativeConfig).then((config) => {
// Do stuff
}
}
}
Имой тестовый файл Scene.test.js :
let getScene = null;
const configureEnvironmentMock = jest.fn();
describe('Scene', () => {
jest.mock('./config', () => configureEnvironmentMock);
const Scene = require('./Scene').default;
getScene = (previousState) => {
return shallow(
<Scene prevState={previousState}>
<Fragment />
</Scene>,
);
};
it('calls configureEnvironment with the nativeConfig', async () => {
expect.assertions(1);
const nativeConfig = {};
getScene(nativeConfig);
expect(configureEnvironmentMock).toHaveBeenCalledWith(nativeConfig);
});
});
Однако результат выполнения теста:
TypeError: Cannot read property 'then' of undefined
Я понимаю, что проблема вкак я имитирую configureEnvironment, но я не могу заставить его работать.
Я также пытался насмехаться над такой функцией:
jest.mock('./config', () => {
return {
default: configureEnvironmentMock,
};
});
Но это приводит к:
TypeError: (0 , _config2.default) is not a function