Во многих местах я использую макет, поэтому я хочу переместить его в отдельный файл, который можно использовать повторно.
Я думаю, что Jest называет это "ручным макетом".Однако я не хочу использовать соглашение __mocks__
.
Верх проверяемого файла:
import * as dotenvSafe from "dotenv-safe";
Файл с ручным макетом:
const dotenvSafe: any = jest.genMockFromModule("dotenv-safe");
dotenvSafe.load = jest.fn(() => { // the function I want to mock
return {
error: undefined,
parsed: [],
};
});
export default dotenvSafe;
В верхней части тестового файла я пробовал разные вещи:
jest.setMock("dotenv-safe", "../../mocks/dotenv-safe");
Не работает.Тестируемый код получает "../../mocks/dotenv-safe.mock"
вместо модуля.
jest.mock("dotenv-safe", () => require("../../mocks/dotenv-safe"));
Не работает - тестируемый код выдает TypeError: dotenvSafe.load is not a function
.
jest.mock("dotenv-safe", () => { return { load: jest.fn(() => ({error: undefined, parsed: []})) }; });
Работает!Но макет встроенный, и я хочу переместить его в отдельный файл.Я не хочу повторять это в каждом файле.
Какой правильный синтаксис?