Add react ui test 95/96495/2
authorxuegao <xg353y@intl.att.com>
Wed, 2 Oct 2019 09:18:10 +0000 (11:18 +0200)
committerxuegao <xg353y@intl.att.com>
Fri, 4 Oct 2019 07:42:00 +0000 (09:42 +0200)
Add react ui test to improve code coverage.

Issue-ID: CLAMP-509
Change-Id: Ic9c974a78ee453dddb8f985f3e9c9067f66e95d9
Signed-off-by: xuegao <xg353y@intl.att.com>
ui-react/src/components/dialogs/ConfigurationPolicy/ConfigurationPolicyModal.test.js
ui-react/src/components/dialogs/DeployLoop.test.js
ui-react/src/components/dialogs/LoopProperties.test.js
ui-react/src/components/dialogs/OpenLoop/OpenLoopModal.test.js
ui-react/src/components/dialogs/OperationalPolicy/OperationalPolicyModal.test.js
ui-react/src/components/dialogs/PerformActions.test.js [new file with mode: 0644]
ui-react/src/components/dialogs/RefreshStatus.test.js [new file with mode: 0644]
ui-react/src/components/dialogs/UserInfo.test.js

index 934fa49..e0aa8c6 100644 (file)
@@ -29,13 +29,13 @@ import LoopCache from '../../../api/LoopCache';
 describe('Verify DeployLoop', () => {
     beforeEach(() => {
         fetch.resetMocks();
-               fetch.mockImplementation(() => {
-                       return Promise.resolve({
-                               ok: true,
-                               status: 200,
-                               text: () => "OK"
-                       });
-               });
+        fetch.mockImplementation(() => {
+            return Promise.resolve({
+                ok: true,
+                status: 200,
+                text: () => "OK"
+            });
+        });
     })
     const loopCache = new LoopCache({
             "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
@@ -59,7 +59,7 @@ describe('Verify DeployLoop', () => {
 
       expect(handleClose).toHaveBeenCalledTimes(1);
       expect(component.state('show')).toEqual(false);
-      expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+      expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
     });
 
     it('Test handleSave', async () => {
@@ -74,6 +74,6 @@ describe('Verify DeployLoop', () => {
         expect(handleSave).toHaveBeenCalledTimes(1);
         expect(component.state('show')).toEqual(false);
         expect(component.state('componentName')).toEqual("TCA_h2NMX_v1_0_ResourceInstanceName1_tca");
-        expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+        expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
     });
 });
\ No newline at end of file
index bb08baf..2959ed6 100644 (file)
@@ -24,6 +24,8 @@ import React from 'react';
 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 @@ describe('Verify DeployLoop', () => {
 
        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
index fadb909..9b74fe7 100644 (file)
@@ -24,6 +24,7 @@ import React from 'react';
 import { shallow } from 'enzyme';
 import LoopProperties from './LoopProperties';
 import LoopCache from '../../api/LoopCache';
+import LoopService from '../../api/LoopService';
 
 describe('Verify LoopProperties', () => {
        const loopCache = new LoopCache({
@@ -58,4 +59,50 @@ describe('Verify LoopProperties', () => {
 
        expect(component).toMatchSnapshot();
        });
+
+       it('Test handleClose', () => {
+               const historyMock = { push: jest.fn() };
+               const handleClose = jest.spyOn(LoopProperties.prototype,'handleClose');
+               const component = shallow(<LoopProperties 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 loadLoopFunction = jest.fn();
+               const handleSave = jest.spyOn(LoopProperties.prototype,'handleSave');
+               LoopService.updateGlobalProperties = jest.fn().mockImplementation(() => {
+                       return Promise.resolve({
+                               ok: true,
+                               status: 200,
+                               text: () => "OK"
+                       });
+               });
+
+               const component = shallow(<LoopProperties history={historyMock} 
+                                               loopCache={loopCache} loadLoopFunction={loadLoopFunction} />)
+
+               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([ '/']);
+       });
+
+       it('Onchange event', () => {
+               const event = {target:{name:"dcaeDeployParameters", value:"{\"location_id\": \"testLocation\",\"policy_id\": \"TCA_h2NMX_v1_0_ResourceInstanceName1_tca\"}"}};
+               const component = shallow(<LoopProperties loopCache={loopCache}/>);
+
+               component.find('FormControl').simulate('change', event);
+               component.update();
+
+               expect(component.state('temporaryPropertiesJson').dcaeDeployParameters.location_id).toEqual("testLocation");
+       });
 });
index 5153de9..208c947 100644 (file)
@@ -34,9 +34,9 @@ describe('Verify OpenLoopModal', () => {
         "LOOP_gmtAS_v1_0_ResourceInstanceName2_tca_2"
       ]));
   })
-  
+
     it('Test the render method', () => {
-      
+
     const component = shallow(<OpenLoopModal/>);
     expect(component).toMatchSnapshot();
   });
@@ -44,7 +44,6 @@ describe('Verify OpenLoopModal', () => {
   it('Onchange event', () => {
     const event = {value: 'LOOP_gmtAS_v1_0_ResourceInstanceName1_tca_3'};
     const component = shallow(<OpenLoopModal/>);
-       const forms = component.find('StateManager');
 
     component.find('StateManager').simulate('change', event);
     component.update();
@@ -60,7 +59,7 @@ describe('Verify OpenLoopModal', () => {
 
     expect(handleClose).toHaveBeenCalledTimes(1);
     expect(component.state('show')).toEqual(false);
-    expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+    expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
     
     handleClose.mockClear();
   });
@@ -75,8 +74,8 @@ describe('Verify OpenLoopModal', () => {
 
     expect(handleOpen).toHaveBeenCalledTimes(1);
     expect(component.state('show')).toEqual(false);
-    expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
-    
+    expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+
     handleOpen.mockClear();
   });
 
index da60b67..9c7da31 100644 (file)
@@ -28,13 +28,13 @@ import LoopCache from '../../../api/LoopCache';
 describe('Verify OperationalPolicyModal', () => {
     beforeEach(() => {
         fetch.resetMocks();
-               fetch.mockImplementation(() => {
-                       return Promise.resolve({
-                               ok: true,
-                               status: 200,
-                               text: () => "OK"
-                       });
-               });
+        fetch.mockImplementation(() => {
+            return Promise.resolve({
+                ok: true,
+                status: 200,
+                text: () => "OK"
+            });
+        });
     })
     const loopCache = new LoopCache({
             "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
@@ -52,7 +52,7 @@ describe('Verify OperationalPolicyModal', () => {
     });
     const historyMock = { push: jest.fn() };
     const flushPromises = () => new Promise(setImmediate);
-       
+
     it('Test handleClose', () => {
       const handleClose = jest.spyOn(OperationalPolicyModal.prototype,'handleClose');
       const component = mount(<OperationalPolicyModal history={historyMock} loopCache={loopCache}/>)
@@ -61,13 +61,14 @@ describe('Verify OperationalPolicyModal', () => {
 
       expect(handleClose).toHaveBeenCalledTimes(1);
       expect(component.state('show')).toEqual(false);
-      expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+      expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
     });
 
     it('Test handleSave', async () => {
         const loadLoopFunction = jest.fn();
         const handleSave = jest.spyOn(OperationalPolicyModal.prototype,'handleSave');
-        const component = mount(<OperationalPolicyModal history={historyMock} loopCache={loopCache} loadLoopFunction={loadLoopFunction} />)
+        const component = mount(<OperationalPolicyModal history={historyMock} 
+                          loopCache={loopCache} loadLoopFunction={loadLoopFunction} />)
 
         component.find('[variant="primary"]').prop('onClick')();
         await flushPromises();
@@ -75,6 +76,6 @@ describe('Verify OperationalPolicyModal', () => {
 
         expect(handleSave).toHaveBeenCalledTimes(1);
         expect(component.state('show')).toEqual(false);
-        expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+        expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
     });
 });
\ No newline at end of file
diff --git a/ui-react/src/components/dialogs/PerformActions.test.js b/ui-react/src/components/dialogs/PerformActions.test.js
new file mode 100644 (file)
index 0000000..56fdcf3
--- /dev/null
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ *                             reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import { shallow } from 'enzyme';
+import PerformActions from './PerformActions';
+import LoopCache from '../../api/LoopCache';
+import LoopActionService from '../../api/LoopActionService';
+
+describe('Verify PerformActions', () => {
+
+       const loopCache = new LoopCache({
+               "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca"
+       });
+
+       it('Test the render method action failed', async () => {
+               const flushPromises = () => new Promise(setImmediate);
+               const historyMock = { push: jest.fn() };
+               const updateLoopFunction = jest.fn();
+               
+               LoopActionService.refreshStatus = jest.fn().mockImplementation(() => {
+                       return Promise.resolve({
+                               ok: true,
+                               status: 200,
+                               json: () => {}
+                       });
+               });
+               const jsdomAlert = window.alert;
+               window.alert = () => {};
+               const component = shallow(<PerformActions loopCache={loopCache} 
+                                       loopAction="submit" history={historyMock} updateLoopFunction={updateLoopFunction} />)
+               await flushPromises();
+               component.update();
+
+               expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+               window.alert = jsdomAlert;
+       });
+
+       it('Test the render method action successful', async () => {
+               const flushPromises = () => new Promise(setImmediate);
+               const historyMock = { push: jest.fn() };
+               const updateLoopFunction = jest.fn();
+
+               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(<PerformActions loopCache={loopCache} 
+                                               loopAction="submit" history={historyMock} updateLoopFunction={updateLoopFunction} />)
+               await flushPromises();
+               component.update();
+
+               expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+               window.alert = jsdomAlert;
+       });
+
+});
diff --git a/ui-react/src/components/dialogs/RefreshStatus.test.js b/ui-react/src/components/dialogs/RefreshStatus.test.js
new file mode 100644 (file)
index 0000000..cb782ad
--- /dev/null
@@ -0,0 +1,72 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights
+ *                             reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+import React from 'react';
+import { shallow } from 'enzyme';
+import RefreshStatus from './RefreshStatus';
+import LoopCache from '../../api/LoopCache';
+import LoopActionService from '../../api/LoopActionService';
+
+describe('Verify RefreshStatus', () => {
+
+       const loopCache = new LoopCache({
+               "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca"
+       });
+
+       it('Test refresh status failed', async () => {
+               const flushPromises = () => new Promise(setImmediate);
+               const historyMock = { push: jest.fn() };
+
+               const jsdomAlert = window.alert;
+               window.alert = () => {};
+               const component = shallow(<RefreshStatus loopCache={loopCache} history={historyMock} />)
+               await flushPromises();
+               component.update();
+
+               expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+               window.alert = jsdomAlert;
+       });
+
+       it('Test refresh status successful', async () => {
+               const flushPromises = () => new Promise(setImmediate);
+               const historyMock = { push: jest.fn() };
+               const updateLoopFunction = jest.fn();
+
+               LoopActionService.refreshStatus = jest.fn().mockImplementation(() => {
+                       return Promise.resolve({
+                               ok: true,
+                               status: 200,
+                               json: () => {}
+                       });
+               });
+               const jsdomAlert = window.alert;
+               window.alert = () => {};
+               const component = shallow(<RefreshStatus loopCache={loopCache} 
+                                               loopAction="submit" history={historyMock} updateLoopFunction={updateLoopFunction} />)
+               await flushPromises();
+               component.update();
+
+               expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
+               window.alert = jsdomAlert;
+       });
+
+});
index 186dac8..beddde1 100644 (file)
@@ -35,7 +35,7 @@ describe('Verify UserInfo', () => {
                                json: () => {
                                        return Promise.resolve({
                                                "userName": "test",
-                                               "cldsVersion": "1.0.0",
+                                               "cldsVersion": "1.0.0"
                                        });
                        }});
                });