import {mountWithTheme} from 'sentry-test/enzyme'; import {Client} from 'app/api'; import {ErrorRobot} from 'app/components/errorRobot'; describe('ErrorRobot', function () { let getIssues; beforeEach(function () { Client.clearMockResponses(); getIssues = Client.addMockResponse({ url: '/projects/org-slug/project-slug/issues/', method: 'GET', body: [], }); }); describe('with a project', function () { let wrapper; beforeEach(function () { wrapper = mountWithTheme( , TestStubs.routerContext() ); }); it('Renders a button for creating an event', function () { const button = wrapper.find('Button[data-test-id="create-sample-event"]'); expect(button.exists).toBeTruthy(); expect(button.props().disabled).toBeFalsy(); expect(getIssues).toHaveBeenCalled(); }); it('Renders installation instructions', function () { const button = wrapper.find('Button[priority="primary"]'); expect(button).toHaveLength(1); expect(button.props().to).toEqual(expect.stringContaining('getting-started')); }); }); describe('without a project', function () { let wrapper; beforeEach(function () { wrapper = mountWithTheme( , TestStubs.routerContext() ); }); it('Renders a disabled create event button', function () { const button = wrapper.find('Button[data-test-id="create-sample-event"]'); expect(button.exists).toBeTruthy(); expect(button.props().disabled).toBeTruthy(); expect(getIssues).toHaveBeenCalledTimes(0); }); it('does not display install instructions', function () { const button = wrapper.find('Button[priority="primary"]'); expect(button).toHaveLength(0); }); }); });