import React from 'react'; import {mountWithTheme, shallow} from 'sentry-test/enzyme'; import {IssueDiff} from 'app/components/issueDiff'; import {Client} from 'app/api'; jest.mock('app/api'); describe('IssueDiff', function() { const entries = TestStubs.Entries(); const routerContext = TestStubs.routerContext(); const api = new MockApiClient(); it('is loading when initially rendering', function() { const wrapper = shallow( ); expect(wrapper.find('SplitDiff')).toHaveLength(0); expect(wrapper).toMatchSnapshot(); }); it('can dynamically import SplitDiff', async function() { Client.addMockResponse({ url: '/issues/target/events/latest/', body: { entries: entries[0], }, }); Client.addMockResponse({ url: '/issues/base/events/latest/', body: { platform: 'javascript', entries: entries[1], }, }); // Need `mount` because of componentDidMount in const wrapper = mountWithTheme( , routerContext ); await tick(); wrapper.update(); expect(wrapper.find('SplitDiff')).toHaveLength(1); expect(wrapper).toMatchSnapshot(); }); it('can diff message', async function() { Client.addMockResponse({ url: '/issues/target/events/latest/', body: { entries: [{type: 'message', data: {formatted: 'Hello World'}}], }, }); Client.addMockResponse({ url: '/issues/base/events/latest/', body: { platform: 'javascript', entries: [{type: 'message', data: {formatted: 'Foo World'}}], }, }); // Need `mount` because of componentDidMount in const wrapper = mountWithTheme( , routerContext ); await tick(); wrapper.update(); expect(wrapper.find('SplitDiff')).toHaveLength(1); expect(wrapper).toMatchSnapshot(); }); });