Add react ui test

Add react ui test to improve code coverage.

Issue-ID: CLAMP-509
Change-Id: Ic9c974a78ee453dddb8f985f3e9c9067f66e95d9
Signed-off-by: xuegao <xg353y@intl.att.com>
diff --git a/ui-react/src/components/dialogs/DeployLoop.test.js b/ui-react/src/components/dialogs/DeployLoop.test.js
index bb08baf..2959ed6 100644
--- a/ui-react/src/components/dialogs/DeployLoop.test.js
+++ b/ui-react/src/components/dialogs/DeployLoop.test.js
@@ -24,6 +24,8 @@
 import { shallow } from 'enzyme';
 import DeployLoop from './DeployLoop';
 import LoopCache from '../../api/LoopCache';
+import LoopActionService from '../../api/LoopActionService';
+import LoopService from '../../api/LoopService';
 
 describe('Verify DeployLoop', () => {
 	const loopCache = new LoopCache({
@@ -43,4 +45,67 @@
 
 	expect(component).toMatchSnapshot();
 	});
+	
+	it('Test handleClose', () => {
+		const historyMock = { push: jest.fn() };
+		const handleClose = jest.spyOn(DeployLoop.prototype,'handleClose');
+		const component = shallow(<DeployLoop history={historyMock} loopCache={loopCache}/>)
+
+		component.find('[variant="secondary"]').prop('onClick')();
+
+		expect(handleClose).toHaveBeenCalledTimes(1);
+		expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+	});
+
+	it('Test handleSave successful', async () => {
+		const flushPromises = () => new Promise(setImmediate);
+		const historyMock = { push: jest.fn() };
+		const updateLoopFunction = jest.fn();
+		const handleSave = jest.spyOn(DeployLoop.prototype,'handleSave');
+		LoopService.updateGlobalProperties = jest.fn().mockImplementation(() => {
+			return Promise.resolve({
+				ok: true,
+				status: 200,
+				text: () => "OK"
+			});
+		});
+		LoopActionService.performAction = jest.fn().mockImplementation(() => {
+			return Promise.resolve({
+				ok: true,
+				status: 200,
+				json: () => {}
+			});
+		});
+		LoopActionService.refreshStatus = jest.fn().mockImplementation(() => {
+			return Promise.resolve({
+				ok: true,
+				status: 200,
+				json: () => {}
+			});
+		});
+		const jsdomAlert = window.alert;
+		window.alert = () => {};
+		const component = shallow(<DeployLoop history={historyMock} 
+						loopCache={loopCache} updateLoopFunction={updateLoopFunction} />)
+
+		component.find('[variant="primary"]').prop('onClick')();
+		await flushPromises();
+		component.update();
+
+		expect(handleSave).toHaveBeenCalledTimes(1);
+		expect(component.state('show')).toEqual(false);
+		expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+		window.alert = jsdomAlert;
+		handleSave.mockClear();
+	});
+
+	it('Onchange event', () => {
+		const event = { target: { name: "location_id", value: "testLocation"} };
+		const component = shallow(<DeployLoop loopCache={loopCache}/>);
+		const forms = component.find('StateManager');
+
+		component.find('[name="location_id"]').simulate('change', event);
+		component.update();
+		expect(component.state('temporaryPropertiesJson').dcaeDeployParameters.location_id).toEqual("testLocation");
+	});
 });
\ No newline at end of file