12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import {OrganizationFixture} from 'sentry-fixture/organization';
- import {initializeOrg} from 'sentry-test/initializeOrg';
- import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
- import OrganizationRestore from 'sentry/views/organizationRestore';
- describe('OrganizationRestore', function () {
- let mockUpdate, mockGet;
- const pendingDeleteOrg = OrganizationFixture({
- status: {id: 'pending_deletion', name: 'Pending Deletion'},
- });
- const deleteInProgressOrg = OrganizationFixture({
- status: {id: 'deletion_in_progress', name: 'Deletion in progress'},
- });
- beforeEach(() => {
- mockUpdate = MockApiClient.addMockResponse({
- url: `/organizations/${pendingDeleteOrg.slug}/`,
- method: 'PUT',
- status: 200,
- body: OrganizationFixture(),
- });
- });
- it('loads the current organization', async () => {
- mockGet = MockApiClient.addMockResponse({
- url: `/organizations/${pendingDeleteOrg.slug}/`,
- method: 'GET',
- status: 200,
- body: pendingDeleteOrg,
- });
- const {routerProps, routerContext} = initializeOrg<{orgId: string}>({
- organization: pendingDeleteOrg,
- });
- render(<OrganizationRestore {...routerProps} />, {context: routerContext});
- const text = await screen.findByText(/currently scheduled for deletion/);
- expect(mockGet).toHaveBeenCalled();
- expect(text).toBeInTheDocument();
- expect(screen.getByTestId('form-submit')).toBeInTheDocument();
- });
- it('submits update requests', async () => {
- mockGet = MockApiClient.addMockResponse({
- url: `/organizations/${pendingDeleteOrg.slug}/`,
- method: 'GET',
- status: 200,
- body: pendingDeleteOrg,
- });
- const {routerProps, routerContext} = initializeOrg<{orgId: string}>({
- organization: pendingDeleteOrg,
- });
- render(<OrganizationRestore {...routerProps} />, {context: routerContext});
- const button = await screen.findByTestId('form-submit');
- await userEvent.click(button);
- expect(mockUpdate).toHaveBeenCalled();
- expect(window.location.assign).toHaveBeenCalledWith(
- `/organizations/${pendingDeleteOrg.slug}/issues/`
- );
- });
- it('shows message and no form during deletion', async () => {
- mockGet = MockApiClient.addMockResponse({
- url: `/organizations/${deleteInProgressOrg.slug}/`,
- method: 'GET',
- status: 200,
- body: deleteInProgressOrg,
- });
- const {routerProps, routerContext} = initializeOrg<{orgId: string}>({
- organization: deleteInProgressOrg,
- });
- render(<OrganizationRestore {...routerProps} />, {context: routerContext});
- const text = await screen.findByText(
- /organization is currently in progress of being deleted/
- );
- expect(text).toBeInTheDocument();
- expect(screen.queryByTestId('form-submit')).not.toBeInTheDocument();
- });
- });
|