aboutsummaryrefslogtreecommitdiffstats
path: root/ui-react/src/components/dialogs/RefreshStatus.test.js
blob: e08c50d2e5d428958a7f9e7b822a2580074f6314 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*-
 * ============LICENSE_START=======================================================
 * ONAP CLAMP
 * ================================================================================
 * Copyright (C) 2019 AT&T Intellectual Property. All rights
 *                             reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END============================================
 * ===================================================================
 *
 */
import React from 'react';
import { shallow } from 'enzyme';
import RefreshStatus from './RefreshStatus';
import LoopCache from '../../api/LoopCache';
import LoopActionService from '../../api/LoopActionService';

describe('Verify RefreshStatus', () => {

	const loopCache = new LoopCache({
		"name": "LOOP_Jbv1z_v1_0_ResourceInstanceName1_tca"
	});

	it('Test refresh status failed', async () => {
		const flushPromises = () => new Promise(setImmediate);
		const historyMock = { push: jest.fn() };
		const showSucAlert = jest.fn();
		const showFailAlert = jest.fn();

		const component = shallow(<RefreshStatus loopCache={loopCache} history={historyMock} showSucAlert={showSucAlert} showFailAlert={showFailAlert} />)
		await flushPromises();
		component.update();

		expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
	});

	it('Test refresh status successful', async () => {
		const flushPromises = () => new Promise(setImmediate);
		const historyMock = { push: jest.fn() };
		const updateLoopFunction = jest.fn();
		const showSucAlert = jest.fn();
		const showFailAlert = jest.fn();

		LoopActionService.refreshStatus = jest.fn().mockImplementation(() => {
			return Promise.resolve({
				ok: true,
				status: 200,
				json: () => {}
			});
		});

		const component = shallow(<RefreshStatus loopCache={loopCache} 
						loopAction="submit" history={historyMock} updateLoopFunction={updateLoopFunction} showSucAlert={showSucAlert} showFailAlert={showFailAlert} />)
		await flushPromises();
		component.update();

		expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
	});

});
p">=> "{GlobalFetch}" }) }) afterAll(() => { global.fetch = unmockedFetch }) beforeEach(() => { logSpy.mockClear() }) it("renders without crashing", () => { shallow(<CommissioningModal/>); }); it("renders correctly", () => { const tree = shallow(<CommissioningModal/>); expect(toJson(tree)).toMatchSnapshot(); }); it('should have three Button elements', () => { const container = shallow(<CommissioningModal/>) expect(container.find('Button').length).toEqual(3); }); it('handleClose called when bottom button clicked', () => { const history = createMemoryHistory(); const component = mount(<CommissioningModal history={ history }/>) act(() => { component.find('[variant="secondary"]').simulate('click'); expect(logSpy).toHaveBeenCalledWith('handleClose called'); }); component.unmount(); }); it('handleClose called when top-right button clicked', () => { const history = createMemoryHistory(); const component = mount(<CommissioningModal history={ history }/>) act(() => { component.find('[size="xl"]').get(0).props.onHide(); expect(logSpy).toHaveBeenCalledWith('handleClose called'); }); component.unmount(); }); it('handleSave called when save button clicked', () => { const component = shallow(<CommissioningModal/>) act(() => { component.find('[variant="primary"]').simulate('click'); expect(logSpy).toHaveBeenCalledWith("handleSave called"); }); }); 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 })) mount(<CommissioningModal/>) await act(async () => { expect(fetchMock).toHaveBeenCalled(); }); }); it('getCommonProperties gets called in useEffect with error', async() => { const fetchMock = jest.spyOn(ACMService, 'getToscaTemplate').mockImplementation(() => Promise.resolve({ ok: false, status: 200, text: () => "OK", json: () => commonProperties })) mount(<CommissioningModal/>) await act(async () => { expect(fetchMock).toHaveBeenCalled(); }); }); it('useState gets called in useEffect with error', async() => { const useStateSpy = jest.spyOn(React, 'useState') jest .spyOn(global, 'fetch') .mockImplementation(() => Promise.resolve({ ok: false, status: 200, text: () => "OK", json: () => "{useState}" }) ) mount(<CommissioningModal/>) await act(async () => { expect(useStateSpy).toHaveBeenCalledTimes(6); }); }); it('set state gets called for setFullToscaTemplate', () => { const setFullToscaTemplate = jest.fn(); const history = createMemoryHistory(); jest .spyOn(global, 'fetch') .mockImplementation(() => Promise.resolve({ ok: true, status: 200, text: () => "OK", json: () => fullTemplate }) ) mount(<CommissioningModal history={ history }/>) act(async () => { // expect(renderJsonEditor).toHaveBeenCalled(); expect(setFullToscaTemplate).toHaveBeenCalledTimes(1); }); }); it('set state gets called for setToscaJsonSchema useEffect on success', () => { const setToscaJsonEditor = jest.fn(); const history = createMemoryHistory(); jest .spyOn(global, 'fetch') .mockImplementation(() => Promise.resolve({ ok: true, status: 200, text: () => "OK", json: () => fullTemplate }) ) mount(<CommissioningModal history={ history }/>) act(async () => { expect(setToscaJsonEditor).toHaveBeenCalledTimes(1); }); }); it('Check useEffect is being called', async () => { const useEffect = jest.spyOn(React, "useEffect"); mount(<CommissioningModal/>) await act(async () => { expect(useEffect).toHaveBeenCalled(); }) }); it('test handleCommission called on click', async () => { const deleteToscaTemplateSpy = jest.spyOn(ACMService, 'deleteToscaTemplate').mockImplementation(() => { Promise.resolve({ ok: true, status: 200, text: () => "OK", json: () => "{handleCommissioning}" }) }) const uploadToscaTemplateSpy = jest.spyOn(ACMService, 'uploadToscaFile').mockImplementation(() => { Promise.resolve({ ok: true, status: 200, text: () => "OK", json: () => "{uploadToscaFile}" }) }) const useStateSpy = jest.spyOn(React, 'useState') const component = shallow(<CommissioningModal/>) component.find('[variant="success mr-auto"]').simulate('click'); await act( async () => { expect(logSpy).toHaveBeenCalledWith("handleCommission called") expect(await deleteToscaTemplateSpy).toHaveBeenCalled() expect(await uploadToscaTemplateSpy).toHaveBeenCalled() expect(logSpy).toHaveBeenCalledWith("receiveResponseFromCommissioning called") expect(useStateSpy).toHaveBeenCalled() }) }) });