Jest: тестирование методов API от Intercom - PullRequest
0 голосов
/ 12 марта 2019

У меня возникают проблемы с пониманием того, каким будет процесс тестирования для функций тестирования, использующих функции, загруженные из библиотеки JavaScript из Intercom.

Мой метод выглядит следующим образом:

 export const generateButton = (handleOnClick) => {
    case "moo":
        return <button onClick={() => Intercom('show')}>Sign Up</button>
    default: 
        return 'moo'

Я получаю ошибку при запуске:

ReferenceError: Интерком не определен

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Итак, я понял, мне нужно было добавить новый файл и указать jest, настроенный на package.json, вот так (добавлен файл mockObject)

"setupFiles": [
  "./config/jest/setupJest.js",
  "./config/jest/mockObject.js"
],

тогда в самом файле есть это

global.Intercom = () => {
   console.log('Intercom called')
}
0 голосов
/ 12 марта 2019

Если я понимаю, что вы пытаетесь сделать, создайте фиктивную функцию, чтобы заменить Интерком в ваших тестах. Как то так ...

const Intercom = jest.fn();

describe('button click', () => {
    it('Intercom is called correctly', () => {
        // whatever component contains the button should be mounted
        const wrapper = mount(<YourComponentHere />);

        // you may need to add a class to target the specific button
        wrapper.find('button').simulate('click');

        expect(dummyFunction).toHaveBeenCalledWith('show');
        expect(dummyFunction).toHaveBeenCalledTimes(1);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...