Я хочу написать тест для компонента.В этом компоненте есть метод жизненного цикла 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 (токен), прежде чем что-либо еще, и должны дождаться выполнения своего обещания, прежде чем другие вызовы, чтобы избежать каких-либо внутренних внутренних проблем.