Как написать тест для компонента, если инициализация микшерной панели происходит вне этого компонента? - PullRequest
0 голосов
/ 03 июня 2019

Я хочу написать тест для компонента.В этом компоненте есть метод жизненного цикла componentDidMount.В нем я использую функцию Mixpanel.track («текст»).Но я поделился InstanceWithToken за пределами этого компонента.Как мне написать макет для этого?

import React from 'react';
import {View} from 'react-native';
import Mixpanel from 'react-native-mixpanel';

class HelpChat extends SamComponent {

  componentDidMount() {
    Mixpanel.track('написать в поддержку');
  }

  render() {
    return (
      <View />        
    );
  }
};

export default HelpChat;

Я пробовал это решение, но ничего не произошло.

import React from 'react';
import 'react-native';
import HelpChat from '../components/Help/HelpChat';
import { shallow, mount } from 'enzyme';
import renderer from 'react-test-renderer';
import Mixpanel from 'react-native-mixpanel';

describe('<Foo />', () => {
  jest.mock('react-native-mixpanel', (token) => ({
     sharedInstanceWithToken: jest.fn(() => token),
     trackWithProperties: jest.fn(),
   }));
  console.warn('MIXPANEL: ', Mixpanel['sharedInstanceWithToken']);

  const wrapper = shallow(<HelpChat />);

});

Ошибка: еще не создан экземпляр mixpanel.Вы должны вызывать sharedInstanceWithToken (токен) или MixPanelInstance.initialize (токен), прежде чем что-либо еще, и должны дождаться выполнения своего обещания, прежде чем другие вызовы, чтобы избежать каких-либо внутренних внутренних проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...