diff options
author | saul.gill <saul.gill@est.tech> | 2021-10-29 14:24:20 +0100 |
---|---|---|
committer | saul.gill <saul.gill@est.tech> | 2021-10-29 15:16:06 +0100 |
commit | ce0db169bce5d44ab36be7015a11c9a0205e05a1 (patch) | |
tree | c2b631c8e320c1528fe4b87da9d5a21eeabe41e8 /gui-clamp/ui-react/src/components/dialogs/ControlLoop/ReadAndConvertYaml.test.js | |
parent | 6df019389c1f5de9dd5b7601e270f0ef17ea2491 (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.js | 203 |
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() }); - }); |