Я пытаюсь смоделировать импорт модуля с помощью Jest, и я почему-то борюсь. У меня есть следующий код:
src /astic.js
const getRolesFunc = elasticClient => async username => {
// Do some stuff
}
module.exports = { getRolesFunc };
src / handlerFactory.js
const { getRolesFunc } = require("../src/elastic");
const handlerFactory = elasticClient =>
async (event) => {
const getRolesAsync = getRolesFunc(elasticClient);
const roles = await getRolesAsync();
}
}
Мой тестовый файл в настоящее время выглядит следующим образом:
tests / handlerFactory.unit.test.js
const { handlerFactory } = require("../src/handlerFactory");
const { getRolesFunc } = require("../src/elastic");
jest.mock("../src/elastic", () => ({
getRolesFunc: jest.fn(),
}));
describe("handlerFactory", () => {
it("handler returns correct response", async () => {
getRolesFunc.mockImplementation(() => "foo");
// Call the handler to get our actual result
const handlerAsync = handlerFactory({});
const result = await handlerAsync(event);
});
});
На данный момент, однако, я получаюошибка в моем тесте:
TypeError: getRolesFunc.mockImplementation не является функцией
Я пробовал несколько вещей, ни одна из которых не работала, это похоже на ближайший, ноЯ не могу понять, почему jest.mock
не работает правильно. Я посмотрел на несколько примеров и до сих пор не могу понять, почему это я не могу заставить насмехаться. Может кто-нибудь помочь указать, что я сделал не так?