aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.rst1
-rw-r--r--pom.xml2
-rw-r--r--ui-react/src/components/loop_viewer/svg/LoopSvg.js2
-rw-r--r--ui-react/src/components/loop_viewer/svg/LoopSvg.test.js107
-rw-r--r--ui-react/src/components/loop_viewer/svg/__snapshots__/LoopSvg.test.js.snap33
5 files changed, 136 insertions, 9 deletions
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 7f95b7c2c..525001d04 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -26,6 +26,7 @@ The main goal of the El Alto release was to:
**Known Issues**
- `CLAMP-506 <https://jira.onap.org/browse/CLAMP-506>`_ Elastic Search Clamp image cannot be built anymore(SearchGuard DMCA issue)
+ - Due to the uncertainties with the DMCA SearchGuard issue, the ELK stack has been removed from El Alto release, meaning the CLAMP "Control Loop Dashboard" is not part of the El Alto release.
- `CLAMP-519 <https://jira.onap.org/browse/CLAMP-519>`_ Clamp cannot authenticate to AAF(Local authentication as workaround)
diff --git a/pom.xml b/pom.xml
index 448f290be..76a0e4f1d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,7 +97,7 @@
<sonar.javascript.lcov.reportPaths>${project.build.directory}/${ui.react.src}/coverage/lcov.info</sonar.javascript.lcov.reportPaths>
<sonar.exclusions>src/main/resources/**</sonar.exclusions>
-
+ <sonar.coverage.exclusions>src/main/resources/**,target/ui-react/src/**/*.test.js,target/ui-react/src/setupTests.js,src/main/docker/kibana/*.py</sonar.coverage.exclusions>
<docker.push.registry>localhost:5000</docker.push.registry>
<docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
<docker.skip.build>true</docker.skip.build>
diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.js
index 48f0335fc..06cfd238f 100644
--- a/ui-react/src/components/loop_viewer/svg/LoopSvg.js
+++ b/ui-react/src/components/loop_viewer/svg/LoopSvg.js
@@ -61,7 +61,7 @@ class LoopViewSvg extends React.Component {
return this.state.svgContent !== nextState.svgContent;
}
- componentWillReceiveProps(newProps) {
+ componentWillReceiveProps(newProps) {
if (this.state.loopCache !== newProps.loopCache) {
this.setState({
loopCache: newProps.loopCache,
diff --git a/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js b/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js
index 5a28328c9..635185463 100644
--- a/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js
+++ b/ui-react/src/components/loop_viewer/svg/LoopSvg.test.js
@@ -23,12 +23,111 @@
import React from 'react';
import { shallow } from 'enzyme';
import LoopSvg from './LoopSvg';
+import LoopCache from '../../../api/LoopCache';
+import LoopService from '../../../api/LoopService';
describe('Verify LoopSvg', () => {
+ const loopCache = new LoopCache({
+ "name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca",
+ "microServicePolicies": [{
+ "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+ "properties": {"domain": "measurementsForVfScaling"},
+ "shared": false,
+ "jsonRepresentation": {"schema": {}}
+ }],
+ "operationalPolicies": [{
+ "name": "OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "configurationsJson": {
+ "guard_policies": {},
+ "operational_policy": {
+ "controlLoop": {},
+ "policies": []
+ }
+ }
+ }]
+ });
- it('Test the render method', () => {
- const component = shallow(<LoopSvg />)
+ it('Test the render method no loopName', () => {
+ const localLoopCache = new LoopCache({
+ "microServicePolicies": [{
+ "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+ "properties": {"domain": "measurementsForVfScaling"},
+ "shared": false,
+ "jsonRepresentation": {"schema": {}}
+ }]
+ });
+ const component = shallow(
+ <LoopSvg.WrappedComponent loopCache={localLoopCache}/>
+ );
- expect(component).toMatchSnapshot();
- });
+ expect(component).toMatchSnapshot();
+ });
+
+ it('Test the render method', () => {
+ const component = shallow(
+ <LoopSvg.WrappedComponent loopCache={loopCache}/>
+ );
+
+ expect(component).toMatchSnapshot();
+ });
+
+ it('Test the render method svg not empty', async () => {
+ const flushPromises = () => new Promise(setImmediate);
+ LoopService.getSvg = jest.fn().mockImplementation(() => {
+ return Promise.resolve("<svg><text test</text></svg>");
+ });
+ const component = shallow(
+ <LoopSvg.WrappedComponent loopCache={loopCache}/>
+ );
+ await flushPromises();
+ expect(component).toMatchSnapshot();
+ });
+
+ it('Test handleSvgClick', () => {
+ const historyMock = { push: jest.fn() };
+
+ const component = shallow(
+ <LoopSvg.WrappedComponent loopCache={loopCache} history={historyMock}/>
+ );
+ let dummyElement = document.createElement('div');
+ dummyElement.setAttribute("data-element-id","TCA_h2NMX_v1_0_ResourceInstanceName1_tca");
+
+ const event = { target: { parentNode: { parentNode:{ parentNode: dummyElement }}}};
+
+ component.simulate('click', event);
+ component.update();
+
+ expect(historyMock.push.mock.calls[0]).toEqual([ '/configurationPolicyModal/TCA_h2NMX_v1_0_ResourceInstanceName1_tca']);
+
+ //click operational policy
+ dummyElement.setAttribute("data-element-id","OPERATIONAL_h2NMX_v1_0_ResourceInstanceName1_tca");
+ const event2 = { target: { parentNode: { parentNode:{ parentNode: dummyElement }}}};
+
+ component.simulate('click', event2);
+ component.update();
+
+ expect(historyMock.push.mock.calls[1]).toEqual([ '/operationalPolicyModal']);
+ });
+
+ it('Test componentWillReceiveProps method', () => {
+ const localLoopCache = new LoopCache({
+ "microServicePolicies": [{
+ "name": "TCA_h2NMX_v1_0_ResourceInstanceName1_tca",
+ "modelType": "onap.policies.monitoring.cdap.tca.hi.lo.app",
+ "properties": {"domain": "measurementsForVfScaling"},
+ "shared": false,
+ "jsonRepresentation": {"schema": {}}
+ }]
+ });
+ const component = shallow(
+ <LoopSvg.WrappedComponent loopCache={localLoopCache}/>
+ );
+
+ expect(component.state('componentModalMapping').size).toEqual(2);
+
+ component.setProps({loopCache: loopCache});
+ expect(component.state('componentModalMapping').size).toEqual(3);
+ });
});
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
index 23d22256f..cecfb425a 100644
--- 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
@@ -1,7 +1,34 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Verify LoopSvg Test the render method 1`] = `
-<ContextConsumer>
- <Component />
-</ContextConsumer>
+<styled.div
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>",
+ }
+ }
+ onClick={[Function]}
+/>
+`;
+
+exports[`Verify LoopSvg Test the render method no loopName 1`] = `
+<styled.div
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "<svg><text x=\\"20\\" y=\\"40\\">No LOOP (SVG)</text></svg>",
+ }
+ }
+ onClick={[Function]}
+/>
+`;
+
+exports[`Verify LoopSvg Test the render method svg not empty 1`] = `
+<styled.div
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "<svg><text test</text></svg>",
+ }
+ }
+ onClick={[Function]}
+/>
`;