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);
}
}