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 7f95b7c2..525001d0 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 6edd4df5..00061a23 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 48f0335f..06cfd238 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 5a28328c..63518546 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 23d22256..cecfb425 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]}
+/>
`;