summaryrefslogtreecommitdiffstats
path: root/gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js
diff options
context:
space:
mode:
authorsaul.gill <saul.gill@est.tech>2021-10-29 14:24:20 +0100
committersaul.gill <saul.gill@est.tech>2021-10-29 15:16:06 +0100
commitce0db169bce5d44ab36be7015a11c9a0205e05a1 (patch)
treec2b631c8e320c1528fe4b87da9d5a21eeabe41e8 /gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js
parent6df019389c1f5de9dd5b7601e270f0ef17ea2491 (diff)
Added tests to improve coverage
Added new tests and snapshots Altered existing tests to bring up coverage Altered package.json in response to warning messages Removed unused functions from ControlLoopService Added json testFiles Added utils directory for out-of-component functions Issue-ID: POLICY-3643 Change-Id: I3405a4421637e63235ff5176c913a5a5f9a4a44c Signed-off-by: saul.gill <saul.gill@est.tech>
Diffstat (limited to 'gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js')
-rw-r--r--gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js203
1 files changed, 178 insertions, 25 deletions
diff --git a/gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js b/gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js
index 90d7185..03192a1 100644
--- a/gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js
+++ b/gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js
@@ -20,32 +20,43 @@
import React from 'react';
import { mount, shallow } from 'enzyme';
import ReadAndConvertYaml from './ReadAndConvertYaml';
+import GetToscaTemplate from "./GetToscaTemplate";
import toJson from "enzyme-to-json";
import { act } from "react-dom/test-utils";
import { createMemoryHistory } from "history";
+let logSpy = jest.spyOn(console, 'log')
describe('Verify ReadAndConvertYaml', () => {
- beforeEach(() => {
- fetch.resetMocks();
- fetch.mockImplementation(() => {
- return Promise.resolve({
+ const unmockedFetch = global.fetch
+
+ const flushPromises = () => new Promise(setImmediate);
+
+ beforeAll(() => {
+ global.fetch = () =>
+ Promise.resolve({
ok: true,
status: 200,
- json: () => {
- return Promise.resolve({
- "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
- "data_types": {},
- "policy_types": {},
- "topology_template": {},
- "name": "ToscaServiceTemplateSimple",
- "version": "1.0.0",
- "metadata": {},
- "id": "0.19518677404255147"
- });
- }
- });
- });
+ text: () => "OK",
+ json: () => Promise.resolve({
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "data_types": {},
+ "policy_types": {},
+ "topology_template": {},
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {},
+ "id": "0.19518677404255147"
+ })
+ })
+ })
+
+ beforeEach(() => {
+ logSpy.mockClear()
+ })
+
+ afterAll(() => {
+ global.fetch = unmockedFetch
})
it("renders without crashing", () => {
@@ -64,36 +75,178 @@ describe('Verify ReadAndConvertYaml', () => {
it('should call getToscaServiceTemplateHandler on click', async () => {
const component = mount(<ReadAndConvertYaml/>);
- const logSpy = jest.spyOn(console, 'log');
- act(async () => {
+ await act(async () => {
+ component.find('GetToscaTemplate').simulate('click');
+ await flushPromises()
+ component.update()
+ await expect(logSpy).toHaveBeenCalledWith('getToscaServiceTemplateHandler called');
+ });
+ component.unmount()
+ });
+
+ it('should make unsuccessful call getToscaServiceTemplateHandler on click', async () => {
+ jest
+ .spyOn(global, 'fetch')
+ .mockImplementationOnce(async () =>
+ Promise.resolve({
+ ok: false,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "data_types": {},
+ "policy_types": {},
+ "topology_template": {},
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {},
+ "id": "0.19518677404255147"
+ })
+ }
+ }
+ )
+ )
+ const component = mount(<ReadAndConvertYaml/>);
+
+ await act(async () => {
+ component.find('GetToscaTemplate').simulate('click');
+ await flushPromises()
+ component.update()
+ expect(logSpy).toHaveBeenCalledWith('getToscaServiceTemplateHandler called with error');
+ });
+ component.unmount();
+ });
+
+ it('should make unsuccessful call deleteToscaServiceTemplateHandler on click', async () => {
+ jest
+ .spyOn(global, 'fetch')
+ .mockImplementationOnce(() =>
+ Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "data_types": {},
+ "policy_types": {},
+ "topology_template": {},
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {},
+ "id": "0.19518677404255147"
+ })
+ }
+ }
+ )
+ )
+ const component = mount(<ReadAndConvertYaml/>);
+
+ await act(async () => {
component.find('GetToscaTemplate').simulate('click');
- expect(logSpy).toHaveBeenCalledWith('getToscaServiceTemplateHandler called');
+ await flushPromises()
+ component.update()
+ component.find('DeleteToscaTemplate').simulate('click');
+ await flushPromises()
+ component.update()
+ expect(logSpy).toHaveBeenCalledWith('deleteTemplateHandler called');
});
+
+ component.unmount()
+ });
+
+ it('should make unsuccessful call deleteToscaServiceTemplateHandler on click', async () => {
+ const realUseState = React.useState
+ const stubInitialState = [true]
+
+ const useStateSpy = jest.spyOn(React, 'useState')
+ useStateSpy.mockImplementationOnce(() => realUseState(stubInitialState));
+
+ jest
+ .spyOn(global, 'fetch')
+ .mockImplementationOnce(() =>
+ Promise.resolve({
+ ok: true,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "data_types": {},
+ "policy_types": {},
+ "topology_template": {},
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {},
+ "id": "0.19518677404255147"
+ })
+ }
+ }
+ )
+ )
+ const component = mount(<ReadAndConvertYaml/>);
+
+
+ await act(async () => {
+ component.find('GetToscaTemplate').simulate('click');
+ await flushPromises()
+ component.update()
+ });
+
+ jest
+ .spyOn(global, 'fetch')
+ .mockImplementationOnce(() =>
+ Promise.resolve({
+ ok: false,
+ status: 200,
+ json: () => {
+ return Promise.resolve({
+ "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+ "data_types": {},
+ "policy_types": {},
+ "topology_template": {},
+ "name": "ToscaServiceTemplateSimple",
+ "version": "1.0.0",
+ "metadata": {},
+ "id": "0.19518677404255147"
+ })
+ }
+ }
+ )
+ )
+
+ await act(async () => {
+ component.find('DeleteToscaTemplate').simulate('click');
+ await flushPromises()
+ component.update()
+ expect(logSpy).toHaveBeenCalledWith('deleteTemplateHandler called with error');
+ });
+ component.unmount()
});
it('handleClose called when bottom button clicked', () => {
const history = createMemoryHistory();
const component = mount(<ReadAndConvertYaml history={ history }/>)
- const logSpy = jest.spyOn(console, 'log');
act(() => {
component.find('[variant="secondary"]').simulate('click');
expect(logSpy).toHaveBeenCalledWith('handleClose called');
});
+ component.unmount()
});
- it('handleClose called when top-right button clicked', () => {
+ it('handleClose called when top-right button clicked', async () => {
const history = createMemoryHistory();
const component = mount(<ReadAndConvertYaml history={ history }/>)
const logSpy = jest.spyOn(console, 'log');
- act(() => {
+ await act(async () => {
component.find('[size="xl"]').get(0).props.onHide();
+ await flushPromises()
+ component.update()
expect(logSpy).toHaveBeenCalledWith('handleClose called');
});
+ component.unmount()
});
-
});