Jest не распознает внешний модуль typescript

#javascript #typescript #testing #jestjs

#javascript #typescript #тестирование #jestjs

Вопрос:

У меня есть некоторый импортируемый во время выполнения модуль, импортируемый через AMD define. Все работает так, как ожидалось, но я просто не могу издеваться над каким-либо модулем времени выполнения внутри тестов.

Сообщение об ошибке без насмешек: Cannot find module 'MyModule' from ... Я также получаю то же сообщение об ошибке при попытке доступа к jest.mock модулю. тогда ошибка возникает только внутри тестового файла.

 // globals.d.ts
declare module 'config' {
    const val: IConfig;
    export default val;
}
  
 // main.ts
/// <reference path="./globals.d.ts" />
import config from 'config';
[...]
  
 // main.spec.ts
import { main } from "./main.ts"
[...]
  

Ответ №1:

Ожидается, что модуль, над которым издеваются jest.mock , должен существовать. Несуществующие издевательские модули должны быть помечены как виртуальные:

 jest.mock('MyModule', () => ..., {virtual: true});