Added Jest Tests for Overall Coverage
Issue-ID: POLICY-3873
Change-Id: Ie3516ad0178b7960e3ecc380eb0ad3a48a78ce1f
Signed-off-by: brunomilitzer <bruno.militzer@est.tech>
diff --git a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js b/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js
index 2dc2cb3..5181b64 100644
--- a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js
+++ b/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.js
@@ -65,11 +65,9 @@
const [instancePropertiesGlobal, setInstancePropertiesGlobal] = useState({});
const [serviceTemplateResponseOk, setServiceTemplateResponseOk] = useState(true);
const [instancePropertiesResponseOk, setInstancePropertiesResponseOk] = useState(true);
- const [instanceName, setInstanceName] = useState('')
+ const [instanceName, setInstanceName] = useState('');
useEffect(async () => {
- setJsonEditor(null);
-
const toscaTemplateResponse = await ACMService.getToscaTemplate(templateName, templateVersion)
.catch(error => error.message);
@@ -111,8 +109,8 @@
}
const handleSave = async () => {
- console.log("handleSave called");
- if (instanceName !== '' || instanceName.length > 0) {
+ if (instanceName !== '' || instanceName !== undefined || instanceName.length > 0) {
+ console.log("handleSave called");
console.log("instanceName to be saved is: " + instanceName);
diff --git a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.test.js b/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.test.js
index 5c617bf..5b60bce 100644
--- a/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.test.js
+++ b/gui-clamp/ui-react/src/components/dialogs/ACM/InstancePropertiesModal.test.js
@@ -17,14 +17,19 @@
* ============LICENSE_END=========================================================
*/
-import { mount, shallow } from "enzyme";
+import {shallow} from "enzyme";
import React from "react";
import InstancePropertiesModal from "./InstancePropertiesModal";
import toJson from "enzyme-to-json";
import { createMemoryHistory } from "history";
import { act } from "react-dom/test-utils";
+import ACMService from "../../../api/ACMService";
+import fullTemp from "./testFiles/fullTemplate.json";
+import instanceProps from "./testFiles/instanceProps.json";
-let logSpy = jest.spyOn(console, 'log')
+const instanceProperties = JSON.parse(JSON.stringify(instanceProps))
+const fullTemplate = JSON.parse(JSON.stringify(fullTemp))
+let logSpy = jest.spyOn(console, 'log');
describe('Verify InstancePropertiesModal', () => {
@@ -66,7 +71,10 @@
});
it('handleCreateUpdateToscaInstanceProperties called when save button clicked', () => {
- const component = mount(<InstancePropertiesModal />)
+ const component = shallow(<InstancePropertiesModal />);
+
+ const instanceNameState = jest.spyOn(React, "useState");
+ instanceNameState.mockImplementation(instanceName => [instanceName, 'Test']);
act(() => {
component.find('[variant="primary"]').simulate('click');
@@ -76,7 +84,7 @@
it('handleClose called when close button clicked', () => {
const history = createMemoryHistory();
- const component = mount(<InstancePropertiesModal history={ history }/>)
+ const component = shallow(<InstancePropertiesModal history={ history }/>)
act(() => {
component.find('[variant="secondary"]').simulate('click');
@@ -85,7 +93,7 @@
});
it('handleSave called when save button clicked', () => {
- const component = mount(<InstancePropertiesModal />)
+ const component = shallow(<InstancePropertiesModal />)
act(() => {
component.find('[variant="primary"]').simulate('click');
@@ -95,9 +103,50 @@
it('Check useEffect is being called', async () => {
const useEffect = jest.spyOn(React, "useEffect");
- mount(<InstancePropertiesModal />)
- await act(async () => {
+ const component = shallow(<InstancePropertiesModal />)
+ act(async () => {
expect(useEffect).toHaveBeenCalled();
+ component.update()
});
});
+
+ it('Check useEffect is being called', async () => {
+ const useEffect = jest.spyOn(React, "useEffect");
+ const component = shallow(<InstancePropertiesModal />)
+ act(async () => {
+ expect(useEffect).toHaveBeenCalled();
+ component.update();
+ });
+ });
+
+ it('getToscaTemplate gets called in useEffect with error', async() => {
+ const fetchMock = jest.spyOn(ACMService, 'getToscaTemplate').mockImplementation(() => Promise.resolve({
+ ok: false,
+ status: 200,
+ text: () => "OK",
+ json: () => fullTemplate
+ }))
+
+ const component = shallow(<InstancePropertiesModal/>)
+ act(async () => {
+ expect(fetchMock).toHaveBeenCalled();
+ component.update();
+ });
+ });
+
+ it('getCommonOrInstanceProperties gets called in useEffect with error', async() => {
+ const fetchMock = jest.spyOn(ACMService, 'getCommonOrInstanceProperties').mockImplementation(() => Promise.resolve({
+ ok: false,
+ status: 200,
+ text: () => "OK",
+ json: () => instanceProperties
+ }))
+
+ const component = shallow(<InstancePropertiesModal/>)
+ act(async () => {
+ expect(fetchMock).toHaveBeenCalled();
+ component.update();
+ });
+ });
+
});