diff --git a/__tests__/pages/Organizations/screens/OrganizationAdd.test.jsx b/__tests__/pages/Organizations/screens/OrganizationAdd.test.jsx index a5e069dd2b..ad47241399 100644 --- a/__tests__/pages/Organizations/screens/OrganizationAdd.test.jsx +++ b/__tests__/pages/Organizations/screens/OrganizationAdd.test.jsx @@ -67,9 +67,25 @@ describe('', () => { expect(results).toEqual(expected); }); }); + test('API response is formatted properly', (done) => { + const spy = jest.spyOn(OrganizationAdd.WrappedComponent.prototype, 'format'); + const mockedResp = {data: {id: 1, name: 'foo bar'} }; + const api = { getInstanceGroups: jest.fn().mockResolvedValue(mockedResp) }; + mount( + + + + ); + + setImmediate(() => { + expect(spy).toHaveBeenCalled(); + done(); + }); + }); test('Successful form submission triggers redirect', (done) => { - const spy = jest.spyOn(OrganizationAdd.WrappedComponent.prototype, 'onSuccess'); + const onSuccess = jest.spyOn(OrganizationAdd.WrappedComponent.prototype, 'onSuccess'); + const resetForm = jest.spyOn(OrganizationAdd.WrappedComponent.prototype, 'resetForm'); const mockedResp = {data: {id: 1, related: {instance_groups: '/bar'}}}; const api = { createOrganization: jest.fn().mockResolvedValue(mockedResp), createInstanceGroups: jest.fn().mockResolvedValue('done') }; const wrapper = mount( @@ -80,7 +96,8 @@ describe('', () => { wrapper.find('input#add-org-form-name').simulate('change', { target: { value: 'foo' } }); wrapper.find('button.at-C-SubmitButton').prop('onClick')(); setImmediate(() => { - expect(spy).toHaveBeenCalled(); + expect(onSuccess).toHaveBeenCalled(); + expect(resetForm).toHaveBeenCalled(); done(); }); }); diff --git a/src/pages/Organizations/screens/OrganizationAdd.jsx b/src/pages/Organizations/screens/OrganizationAdd.jsx index e13b6df20e..2d447d4b77 100644 --- a/src/pages/Organizations/screens/OrganizationAdd.jsx +++ b/src/pages/Organizations/screens/OrganizationAdd.jsx @@ -30,6 +30,7 @@ class OrganizationAdd extends React.Component { this.onSelectChange = this.onSelectChange.bind(this); this.onLookupChange = this.onLookupChange.bind(this); this.onSubmit = this.onSubmit.bind(this); + this.resetForm = this.resetForm.bind(this); this.onSuccess = this.onSuccess.bind(this); this.onCancel = this.onCancel.bind(this); this.format = this.format.bind(this); @@ -83,11 +84,11 @@ class OrganizationAdd extends React.Component { selected.forEach( async (select) => { await api.createInstanceGroups(url, select.id); }); - this.resetForm(); } } catch (err) { this.setState({ createInstanceGroupsError: err }) } finally { + this.resetForm(); this.onSuccess(response.id); } }