1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import {mountGlobalModal} from 'sentry-test/modal';
- import {openReprocessEventModal} from 'sentry/actionCreators/modal';
- import ModalStore from 'sentry/stores/modalStore';
- const group = TestStubs.Group({
- id: '1337',
- pluginActions: [],
- pluginIssues: [],
- });
- const organization = TestStubs.Organization({
- id: '4660',
- slug: 'org',
- features: ['reprocessing-v2'],
- });
- async function mountComponent() {
- const modal = await mountGlobalModal();
- openReprocessEventModal({organization, groupId: group.id});
- await tick();
- await tick();
- modal.update();
- return modal;
- }
- describe('ReprocessEventModal', function () {
- let wrapper: any;
- beforeEach(async function () {
- wrapper = await mountComponent();
- });
- it('modal is open', () => {
- expect(wrapper.find('Header').text()).toEqual('Reprocess Events');
- });
- it('form fields & info', () => {
- // some info about reprocessing
- const introduction = wrapper.find('Introduction');
- expect(introduction).toBeTruthy();
- expect(introduction).toHaveLength(2);
- // Reprocess impacts
- expect(introduction.at(0).text()).toEqual(
- 'Reprocessing applies new debug files and grouping enhancements to this Issue. Please consider these impacts:'
- );
- const impacts = wrapper.find('StyledList');
- expect(impacts).toBeTruthy();
- expect(impacts.length).toBeGreaterThan(0);
- // Docs info
- expect(introduction.at(1).text()).toEqual(
- 'For more information, please refer to the documentation.'
- );
- // Form
- const form = wrapper.find('Form');
- expect(form).toBeTruthy();
- // Number of events to be reprocessed field
- const reprocessQuantityField = form.find('NumberField');
- expect(reprocessQuantityField).toBeTruthy();
- // Remaining events action field
- const remainingEventsActionField = form.find('RadioField');
- expect(remainingEventsActionField).toBeTruthy();
- });
- it('reprocess all events', async () => {
- MockApiClient.addMockResponse({
- url: `/organizations/${organization.slug}/issues/${group.id}/reprocessing/`,
- method: 'POST',
- body: [],
- });
- jest.spyOn(window.location, 'reload').mockImplementation(() => {});
- const closeModalFunc = jest.spyOn(ModalStore, 'closeModal');
- // Number of events to be reprocessed field
- const reprocessQuantityField = wrapper.find('NumberField input');
- expect(reprocessQuantityField.props().placeholder).toEqual('Reprocess all events');
- expect(reprocessQuantityField.props().value).toEqual(undefined);
- const submitButton = wrapper.find('[data-test-id="form-submit"]').hostNodes();
- submitButton.simulate('submit');
- await tick();
- wrapper.update();
- expect(window.location.reload).toHaveBeenCalled();
- expect(closeModalFunc).toHaveBeenCalled();
- });
- });
|