From: xuegao Date: Thu, 19 Sep 2019 12:23:14 +0000 (+0200) Subject: Add unit tests for UI X-Git-Tag: 4.1.3~19^2~2 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=clamp.git;a=commitdiff_plain;h=841ddaaa26c0faf16353d8e22093daa2553aad57 Add unit tests for UI Adding unit tests for React UI Issue-ID: CLAMP-509 Change-Id: If31bbea7972736aa190fd0fed19336a1aa382af8 Signed-off-by: xuegao --- diff --git a/docs/swagger/swagger.pdf b/docs/swagger/swagger.pdf index 12c22163..5f3307b6 100644 --- a/docs/swagger/swagger.pdf +++ b/docs/swagger/swagger.pdf @@ -4,8 +4,8 @@ << /Title (Clamp Rest API) /Creator (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0) /Producer (Asciidoctor PDF 1.5.0.alpha.10, based on Prawn 1.3.0) -/CreationDate (D:20190911145449+02'00') -/ModDate (D:20190911145449+02'00') +/CreationDate (D:20190919142605+02'00') +/ModDate (D:20190919142605+02'00') >> endobj 2 0 obj diff --git a/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java b/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java index b137378d..5bcb0c55 100644 --- a/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java @@ -60,7 +60,6 @@ public class AafConfiguration { registration.addUrlPatterns("/restservices/clds/v1/dictionary/*"); registration.addUrlPatterns("/restservices/clds/v1/user/*"); registration.addUrlPatterns("/restservices/clds/v2/loop/*"); - //registration.addUrlPatterns("*"); registration.setName("cadiFilter"); registration.setOrder(0); return registration; diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html index 49bbe0f5..17507b66 100644 --- a/src/main/resources/META-INF/resources/swagger.html +++ b/src/main/resources/META-INF/resources/swagger.html @@ -2388,7 +2388,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b diff --git a/ui-react/package.json b/ui-react/package.json index dffe698c..4a363ab5 100644 --- a/ui-react/package.json +++ b/ui-react/package.json @@ -63,8 +63,15 @@ "coverageReporters": [ "lcov" ], - "setupFiles": ["./src/setupTests.js"], - "snapshotSerializers": ["enzyme-to-json/serializer"] + "moduleNameMapper": { + "\\.(css|png)$": "identity-obj-proxy" + }, + "setupFiles": [ + "./src/setupTests.js" + ], + "snapshotSerializers": [ + "enzyme-to-json/serializer" + ] }, "babel": { "presets": [ diff --git a/ui-react/src/components/dialogs/DeployLoop.js b/ui-react/src/components/dialogs/DeployLoop.js index 2ec395d2..805f0f29 100644 --- a/ui-react/src/components/dialogs/DeployLoop.js +++ b/ui-react/src/components/dialogs/DeployLoop.js @@ -58,7 +58,7 @@ export default class DeployLoop extends React.Component { handleClose(){ this.props.history.push('/'); } - handleSave(e) { + handleSave() { const loopName = this.props.loopCache.getLoopName(); // save the global propserties LoopService.updateGlobalProperties(loopName, this.state.temporaryPropertiesJson).then(resp => { diff --git a/ui-react/src/components/dialogs/DeployLoop.test.js b/ui-react/src/components/dialogs/DeployLoop.test.js new file mode 100644 index 00000000..bb08baf1 --- /dev/null +++ b/ui-react/src/components/dialogs/DeployLoop.test.js @@ -0,0 +1,46 @@ +/*- + * ============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 DeployLoop from './DeployLoop'; +import LoopCache from '../../api/LoopCache'; + +describe('Verify DeployLoop', () => { + const loopCache = new LoopCache({ + "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", + "globalPropertiesJson": { + "dcaeDeployParameters": { + "location_id": "", + "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" + } + } + }); + + it('Test the render method', () => { + const component = shallow( + + ) + + expect(component).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/ui-react/src/components/dialogs/LoopProperties.test.js b/ui-react/src/components/dialogs/LoopProperties.test.js new file mode 100644 index 00000000..fadb9099 --- /dev/null +++ b/ui-react/src/components/dialogs/LoopProperties.test.js @@ -0,0 +1,61 @@ +/*- + * ============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 LoopProperties from './LoopProperties'; +import LoopCache from '../../api/LoopCache'; + +describe('Verify LoopProperties', () => { + const loopCache = new LoopCache({ + "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", + "globalPropertiesJson": { + "dcaeDeployParameters": { + "location_id": "", + "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" + } + } + }); + + it('Test the render method', () => { + const component = shallow( + + ) + component.setState({ show: true, + temporaryPropertiesJson: { + "dcaeDeployParameters": { + "location_id": "", + "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca" + } + } + }); + + expect(component.state('temporaryPropertiesJson')).toEqual({ + "dcaeDeployParameters": { + "location_id": "", + "policy_id": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca"} + }); + expect(component.state('show')).toEqual(true); + + expect(component).toMatchSnapshot(); + }); +}); diff --git a/ui-react/src/components/dialogs/UserInfo.test.js b/ui-react/src/components/dialogs/UserInfo.test.js new file mode 100644 index 00000000..186dac83 --- /dev/null +++ b/ui-react/src/components/dialogs/UserInfo.test.js @@ -0,0 +1,86 @@ +/*- + * ============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 UserInfo from './UserInfo'; + +describe('Verify UserInfo', () => { + + beforeEach(() => { + fetch.resetMocks(); + fetch.mockImplementation(() => { + return Promise.resolve({ + ok: true, + status: 200, + json: () => { + return Promise.resolve({ + "userName": "test", + "cldsVersion": "1.0.0", + }); + }}); + }); + }) + + it('Test the render method full permission', () => { + const component = shallow() + component.setState({ userInfo: { + "userName": "test", + "cldsVersion": "1.0.0", + "permissionReadCl": true, + "permissionReadTemplate" : true, + "permissionReadTosca" : true, + "permissionUpdateTemplate" : true, + "permissionUpdateCl" : true, + "permissionUpdateTosca": true + }}); + expect(component).toMatchSnapshot(); + }); + + it('Test the render method no permission', () => { + const component = shallow() + component.setState({ userInfo: {} + }); + + expect(component.find('FormControl').length).toEqual(0); + }); + + it('Test the render method read permission', () => { + const component = shallow() + component.setState({ userInfo: { + "userName": "test", + "cldsVersion": "1.0.0", + "permissionReadCl": true, + "permissionReadTemplate" : true, + "permissionReadTosca" : true + }}); + + expect(component.find('FormControl').length).toEqual(5); + + const forms = component.find('FormControl'); + expect(forms.get(0).props.defaultValue).toEqual("test"); + expect(forms.get(1).props.defaultValue).toEqual("1.0.0"); + expect(forms.get(2).props.defaultValue).toEqual("Read Template"); + expect(forms.get(3).props.defaultValue).toEqual("Read Model"); + expect(forms.get(4).props.defaultValue).toEqual("Read Tosca"); + }); +}); diff --git a/ui-react/src/components/dialogs/__snapshots__/DeployLoop.test.js.snap b/ui-react/src/components/dialogs/__snapshots__/DeployLoop.test.js.snap new file mode 100644 index 00000000..1fd4b104 --- /dev/null +++ b/ui-react/src/components/dialogs/__snapshots__/DeployLoop.test.js.snap @@ -0,0 +1,66 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify DeployLoop Test the render method 1`] = ` + + + + Deployment parameters + + + + + location_id + + + + + + policy_id + + + + + + + + +`; diff --git a/ui-react/src/components/dialogs/__snapshots__/LoopProperties.test.js.snap b/ui-react/src/components/dialogs/__snapshots__/LoopProperties.test.js.snap new file mode 100644 index 00000000..c7e81c39 --- /dev/null +++ b/ui-react/src/components/dialogs/__snapshots__/LoopProperties.test.js.snap @@ -0,0 +1,59 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify LoopProperties Test the render method 1`] = ` + + + + Model Properties + + + +
+ + + Deploy Parameters + + + +
+
+ + + + +
+`; diff --git a/ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap b/ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap new file mode 100644 index 00000000..1ae567a2 --- /dev/null +++ b/ui-react/src/components/dialogs/__snapshots__/UserInfo.test.js.snap @@ -0,0 +1,137 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify UserInfo Test the render method full permission 1`] = ` + + + + User Info + + + + + + Current User: + + + + + + + + CLDS Version: + + + + + + + + User Permissions: + + + + + + + + + + + + + + + +`; diff --git a/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js b/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js new file mode 100644 index 00000000..3c76405c --- /dev/null +++ b/ui-react/src/components/loop_viewer/logs/LoopLogs.test.js @@ -0,0 +1,48 @@ +/*- + * ============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 LoopLogs from './LoopLogs'; +import LoopCache from '../../../api/LoopCache'; + +describe('Verify LoopLogs', () => { + + const loopCache = new LoopCache({ + "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", + "loopLogs": [ + { + "id": 1, + "logType": "INFO", + "logComponent": "CLAMP", + "message": "Operational and Guard policies UPDATED", + "logInstant": "2019-07-08T09:44:37Z" + } + ] + }); + + it('Test the render method', () => { + const component = shallow() + + expect(component).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap b/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap new file mode 100644 index 00000000..174a3202 --- /dev/null +++ b/ui-react/src/components/loop_viewer/logs/__snapshots__/LoopLogs.test.js.snap @@ -0,0 +1,61 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify LoopLogs Test the render method 1`] = ` + + + + + + + + Date + + + + + Type + + + + + Component + + + + + Log + + + + + + + + + +`; diff --git a/ui-react/src/components/loop_viewer/status/LoopStatus.test.js b/ui-react/src/components/loop_viewer/status/LoopStatus.test.js new file mode 100644 index 00000000..2be825ed --- /dev/null +++ b/ui-react/src/components/loop_viewer/status/LoopStatus.test.js @@ -0,0 +1,54 @@ +/*- + * ============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 LoopStatus from './LoopStatus'; +import LoopCache from '../../../api/LoopCache'; + +describe('Verify LoopStatus', () => { + + const loopCache = new LoopCache({ + "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca", + "lastComputedState": "DESIGN", + "components": { + "POLICY": { + "componentState": { + "stateName": "NOT_SENT", + "description": "The policies defined have NOT yet been created on the policy engine" + } + }, + "DCAE": { + "componentState": { + "stateName": "BLUEPRINT_DEPLOYED", + "description": "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop" + } + } + } + }); + + it('Test the render method', () => { + const component = shallow() + + expect(component).toMatchSnapshot(); + }); +}); \ No newline at end of file diff --git a/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap b/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap new file mode 100644 index 00000000..275933ee --- /dev/null +++ b/ui-react/src/components/loop_viewer/status/__snapshots__/LoopStatus.test.js.snap @@ -0,0 +1,64 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify LoopStatus Test the render method 1`] = ` + + +
+ + + + + + Component Name + + + + + Component State + + + + + Description + + + + + + + + + +
+
+`; diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js new file mode 100644 index 00000000..5a28328c --- /dev/null +++ b/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js @@ -0,0 +1,34 @@ +/*- + * ============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 LoopSvg from './LoopSvg'; + +describe('Verify LoopSvg', () => { + + it('Test the render method', () => { + const component = shallow() + + expect(component).toMatchSnapshot(); + }); +}); diff --git a/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap b/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap new file mode 100644 index 00000000..23d22256 --- /dev/null +++ b/ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify LoopSvg Test the render method 1`] = ` + + + +`; diff --git a/ui-react/src/components/menu/MenuBar.test.js b/ui-react/src/components/menu/MenuBar.test.js new file mode 100644 index 00000000..3e96dbf3 --- /dev/null +++ b/ui-react/src/components/menu/MenuBar.test.js @@ -0,0 +1,46 @@ +/*- + * ============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 MenuBar from './MenuBar'; + +describe('Verify MenuBar', () => { + + it('Test the render method', () => { + const component = shallow() + + expect(component).toMatchSnapshot(); + }); + + it('Update loopName', () => { + const component = shallow() + component.setProps({ loopName: "newLoop" }); + expect(component.state('disabled')).toBe(false); + }); + + it('Default loopName', () => { + const component = shallow() + component.setProps({ loopName: "Empty (NO loop loaded yet)" }); + expect(component.state('disabled')).toBe(true); + }); +}); diff --git a/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap b/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap new file mode 100644 index 00000000..3ee73346 --- /dev/null +++ b/ui-react/src/components/menu/__snapshots__/MenuBar.test.js.snap @@ -0,0 +1,594 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Verify MenuBar Test the render method 1`] = ` + + + + Open CL + + + Properties CL + + + Close Model + + + + + Submit + + + Stop + + + Restart + + + Delete + + + Deploy + + + UnDeploy + + + + + Refresh Status + + + + + Wiki + + + Contact Us + + + User Info + + + +`;