Я пытаюсь смоделировать модуль npm, на который нет ссылки в тестовом файле. Большинство ответов, которые я видел, были там, где в тестовом файле создавался макет, а затем на него ссылались также из тестового файла. Это не то, что я пытаюсь сделать.
Я бы хотел, чтобы мой тест выполнял макет модуля npm и имел функцию testMe
, чтобы попытаться вызвать код из модуля, который был смоделирован, и получить его. данные из него. По некоторым причинам это оказалось неуловимым.
image.ts
import Jimp from "jimp/es";
export const testMe = async (string: string) => {
const res = await Jimp.read(string);
return res;
}
image.test.ts
import { testMe } from '../src/utils/image';
jest.mock('jimp/es', () => ({
read: jest.fn(() => Promise.resolve('mockedString'))
}));
describe('testMe', () => {
it('successfully completes', async () => {
const image = 'abcde==';
const result = await testMe(image);
expect(result).toBe('mockedString');
});
});
Как мне создать тестовый файл для правильно издеваться над зависимостью? В настоящее время я получаю только ошибку:
● testMe › successfully completes
TypeError: Cannot read property 'read' of undefined
21 |
22 | export const testMe = async (string: string) => {
> 23 | const res = await Jimp.read(string);
| ^
24 |
25 | return res;
26 | }
at Object.exports.testMe (src/utils/image.ts:23:26)
at Object.<anonymous> (__tests__/image.test.ts:26:26)