1 import configureStore from 'redux-mock-store';
2 import thunk from 'redux-thunk'
3 import fetchMock from 'fetch-mock';
6 processVnfFilterPanelCollapse,
9 processVnfVisualizationsOnFilterChange
10 } from 'app/vnfSearch/VnfSearchActions.js';
18 VNF_FILTER_EMPTY_RESULT
19 } from 'app/vnfSearch/VnfSearchConstants.js';
20 import { globalInlineMessageBarActionTypes } from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants.js';
21 import { ERROR_RETRIEVING_DATA } from 'app/networking/NetworkConstants.js';
23 describe('VnfSearchAction - Action Tests', () => {
24 it('Action: processVnfFilterPanelCollapse - open', () => {
25 const result = processVnfFilterPanelCollapse(true);
26 expect(result).toEqual({
27 type: vnfActionTypes.VNF_FILTER_PANEL_TOGGLED,
29 vnfVisualizationPanelClass: 'collapsible-panel-main-panel vertical-filter-panel-is-open'
34 it('Action: processVnfFilterPanelCollapse - close', () => {
35 const result = processVnfFilterPanelCollapse(false);
36 expect(result).toEqual({
37 type: vnfActionTypes.VNF_FILTER_PANEL_TOGGLED,
39 vnfVisualizationPanelClass: 'collapsible-panel-main-panel'
44 it('Action: clearVnfSearchData', () => {
45 const result = clearVnfSearchData();
46 expect(result).toEqual({
47 type: vnfActionTypes.VNF_SEARCH_RESULTS_RECEIVED,
50 provStatusData: CHART_PROV_STATUS.emptyData,
51 orchStatusData: CHART_ORCH_STATUS.emptyData,
52 nfTypeData: CHART_NF_TYPE.emptyData,
53 nfRoleData: CHART_NF_ROLE.emptyData
58 it('Action: setNotificationText - with message', () => {
59 const middlewares = [thunk];
60 const mockStore = configureStore(middlewares);
61 const store = mockStore({ vnfSearch: {} });
62 store.dispatch(setNotificationText('test error message', 'WARNING'));
63 const actions = store.getActions();
64 expect(actions).toEqual([{
65 type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE,
67 msgText: 'test error message',
68 msgSeverity: 'WARNING'
73 it('Action: processVnfVisualizationsOnFilterChange - data for filter values', () => {
74 const middlewares = [thunk];
75 const mockStore = configureStore(middlewares);
76 const store = mockStore({ vnfSearch: {} });
77 const filterValueMap = {
83 const expectedActions = [
84 { type: vnfActionTypes.VNF_ACTIVATE_BUSY_FEEDBACK },
85 { type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE },
87 type: vnfActionTypes.VNF_SEARCH_RESULTS_RECEIVED,
97 { x: 'running', y: 10 }
112 { type: vnfActionTypes.VNF_DISABLE_BUSY_FEEDBACK }
114 fetchMock.mock('*', {
117 "nf-role":[{"doc_count":10,"key":"blah"}],
118 "nf-type":[{"doc_count":10,"key":"doh"}],
119 "prov-status":[{"doc_count":10,"key":"junk"}],
120 "orchestration-status":[{"doc_count":10,"key":"running"}]
124 return store.dispatch(processVnfVisualizationsOnFilterChange(filterValueMap))
126 const actions = store.getActions();
127 expect(actions).toEqual(expectedActions);
132 it('Action: processVnfVisualizationsOnFilterChange - no data for filter values', () => {
133 const middlewares = [thunk];
134 const mockStore = configureStore(middlewares);
135 const store = mockStore({ vnfSearch: {} });
136 const filterValueMap = {
142 const expectedActions = [
143 { type: vnfActionTypes.VNF_ACTIVATE_BUSY_FEEDBACK },
144 { type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE,
145 data: { msgSeverity: "warning", msgText: VNF_FILTER_EMPTY_RESULT }
148 type: vnfActionTypes.VNF_SEARCH_RESULTS_RECEIVED,
150 count: TOTAL_VNF_COUNT.emptyData,
151 provStatusData: CHART_PROV_STATUS.emptyData,
152 orchStatusData: CHART_ORCH_STATUS.emptyData,
153 nfTypeData: CHART_NF_TYPE.emptyData,
154 nfRoleData: CHART_NF_ROLE.emptyData
157 { type: vnfActionTypes.VNF_DISABLE_BUSY_FEEDBACK }
159 fetchMock.mock('*', {
165 "orchestration-status":[]
169 return store.dispatch(processVnfVisualizationsOnFilterChange(filterValueMap))
171 const actions = store.getActions();
172 expect(actions).toEqual(expectedActions);
177 it('Action: processVnfVisualizationsOnFilterChange - network error', () => {
178 const middlewares = [thunk];
179 const mockStore = configureStore(middlewares);
180 const store = mockStore({ vnfSearch: {} });
181 const filterValueMap = {
187 const expectedActions = [
188 { type: vnfActionTypes.VNF_ACTIVATE_BUSY_FEEDBACK },
189 { type: vnfActionTypes.VNF_DISABLE_BUSY_FEEDBACK },
191 type: vnfActionTypes.VNF_NETWORK_ERROR,
192 data: { errorMsg: ERROR_RETRIEVING_DATA }
195 fetchMock.mock('*', 503);
197 return store.dispatch(processVnfVisualizationsOnFilterChange(filterValueMap))
199 const actions = store.getActions();
200 expect(actions).toEqual(expectedActions);
205 it('Action: setNotificationText - no message', () => {
206 const middlewares = [thunk];
207 const mockStore = configureStore(middlewares);
208 const store = mockStore({ vnfSearch: {} });
209 store.dispatch(setNotificationText('', ''));
210 const actions = store.getActions();
211 expect(actions).toEqual([{
212 type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE