примере выше тест отображает, что функция insertRegionToEvent() не вызывалась ни разу
Канал jest отдельный не нашёл, может, кто здесь в курсе, что не так делаю, и всё-таки node.js тестирую
Вместо const insertRegionToEvent = jest.fn(); нужно замокать модуль, из которого экспортируется insertAndHandleEvents
Спасибо, вы ведь это имеете в виду : const foo = jest.mock('moduleName')? Просто вызванная вложенная функция она находится в отдельном файле и экспортируется оттуда отдельно. (но это и неважно, в принципе) Могли бы, пожалуйста, уточнить пример откуда-нибудь, когда время будет. А то много разных вариантов уже пробовал с SO, возможно ваш вариант уже пробовал
// moduleA.js module.exports = { foo() {} } // moduleB.js const { foo } = require('moduleA') module.exports = { bar() { foo(1) } } // test const { foo } = require('moduleA') const { bar } = require('moduleB') jest.mock(moduleA); test('', () => { foo.mockImplementation(() => {}); bar(); expect(foo).toHaveBeenCalled(); }) // test2 const moduleA = require('moduleA') const { bar } = require('moduleB') test('', () => { const spy = jest.spyOn(moduleA, 'foo'); bar(); expect(spy).toHaveBeenCalled(); })
Спасибо большое, попробую
Если что, jest из коробки не поддерживает ES модули
Обсуждают сегодня