Ошибка типа: $ (...). LightBox не является функцией в Jest - PullRequest
0 голосов
/ 10 марта 2019

Я новичок в тестировании React в шутку.Я получаю сообщение об ошибке, когда пытаюсь смоделировать событие «клик».Я пробовал много решений, но не смог решить эту проблему.Моя реализация такова:

<span 
    className="add" 
    ref={(targetNode)=>
    {this.addEmploymentBtn=targetNode;}} 
    onClick={this.initDrawerCall}>ADD JOB PROFILE
</span>


initDrawerCall = () => {
    this.state.addEmploymentInstance = $(this.addEmploymentBtn).lightBox({
      // something here...  
    });
}

Мой тестовый пример:

it('opens a LightBox', () => {
    wrapper.find('.add').simulate('click');
    wrapper.update();

    expect(wrapper.find(OnlineProfilesContainer).length).toEqual(1);
});

Ошибка консоли:

TypeError: $(...).lightBox is not a function

  14 |
  15 |     initDrawerCall = () => {
> 16 |         this.state.addOnlineProfileInstance = $(this.addOnlineProfileBtn).lightBox({
     |                                                                           ^
  17 |             model: $(this.addOnlineProfileCont),
  18 |             dimens: { width: "50%"},
  19 |             open: { anim: "flipOpen",minTop:100,

1 Ответ

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

вы можете издеваться над библиотекой jQuery внутри вашего jest, если это не то, что вы хотите проверить.Вы можете сделать это, добавив файл jestSetup.js и добавив этот код внутри:

global.$ = () => ({
  lightBox: jest.fn()
})

и внутри вашего jest.config.js добавьте путь к этому файлу следующим образом:

setupFiles: ['<rootDir>/jest/jestSetup.js'],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...