Функция window.measurement._trackAnalytics
действительно доступна для функции measurement
при выполнении теста. В противном случае вы получите TypeError
для вызова чего-то, что не является функцией.
Проблема в том, что в методе measurement
ничего не возвращается. Метод _trackAnalytics
вызывается, но его результат не возвращается. Вот почему вы получаете undefined
как result
.
Чтобы проверить, действительно ли он вызывается, я бы использовал функцию jest mock . Тест будет выглядеть так:
test('should send analytics object to rtrack analyitics', () => {
const testObj = {
pageName: 'Leave Abasence'
};
measurement(testObj);
expect(window.Bootstrapper._trackAnalytics).toHaveBeenCalledTimes(1);
expect(window.Bootstrapper._trackAnalytics).toHaveBeenCalledWith(testObj);
});
Обратите внимание, что в вашем коде есть некоторые проблемы (которые, как я ожидаю, являются опечатками). В состоянии
if
вы проверяете
Bootsrapper
вместо
Bootstrapper
. И вы проверяете, равно ли оно функции вместо проверки с помощью
typeof
. Я думаю, что строка должна выглядеть так:
if (typeof window.Bootstrapper._trackAnalytics === 'function') {