import * as fromSearchMultiple from './search-multiple.reducer'; import * as searchMultipleActions from './search-multiple.action'; import {DataByDataset, DatasetCount} from './model'; import {Pagination, PaginationOrder} from "../../shared/datatable/model"; fdescribe('[SearchMultiple] Reducer', () => { it('should return init state', () => { const { initialState } = fromSearchMultiple; const action = {} as searchMultipleActions.Actions; const state = fromSearchMultiple.reducer(undefined, action); expect(state).toBe(initialState); }); it('should init selectedDatasets', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.InitSelectedDatasetsAction(['toto', 'tutu']); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(2); expect(state.selectedDatasets.includes('toto')).toBeTruthy(); expect(state.selectedDatasets.includes('tutu')).toBeTruthy(); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set currentStep to "position"', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.ChangeStepAction('position'); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toEqual('position'); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set positionStepChecked to true', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.PositionCheckedAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeFalsy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeTruthy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set datasetsStepChecked to true', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.DatasetsCheckedAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeTruthy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set resultStepChecked to true', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.ResultsCheckedAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeTruthy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should change selectedDatasets', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.UpdateSelectedDatasetsAction(['toto', 'tutu']); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(2); expect(state.selectedDatasets.includes('toto')).toBeTruthy(); expect(state.selectedDatasets.includes('tutu')).toBeTruthy(); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set datasetsCountIsLoading to true', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.RetrieveDatasetsCountAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeTruthy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set datasetsCountIsLoading to false, set datasetsCountIsLoaded to true and set datasetsCount', () => { const datasetsCount: DatasetCount[] = [{ dname: 'toto', count: 2}]; const initialState = { ...fromSearchMultiple.initialState, datasetsCountIsLoading: true }; const action = new searchMultipleActions.RetrieveDatasetsCountSuccessAction(datasetsCount); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeTruthy(); expect(state.datasetsCount).toEqual(datasetsCount); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set datasetsCountIsLoading to false', () => { const initialState = { ...fromSearchMultiple.initialState, datasetsCountIsLoading: true }; const action = new searchMultipleActions.RetrieveDatasetsCountFailAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should set data', () => { const pagination: Pagination = { dname: 'toto', nbItems: 10, page: 1, sortedCol: 1, order: PaginationOrder.a }; const expectedEntity: DataByDataset = { datasetName: 'toto', isLoading: true, isLoaded: false, data: [] }; const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.RetrieveDataAction(pagination); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(1); expect(state.ids).toContain('toto'); expect(state.entities['toto']).toEqual(expectedEntity); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should update data when success', () => { const expectedEntity: DataByDataset = { datasetName: 'toto', isLoading: false, isLoaded: true, data: [1, 2] }; const initialState = { ...fromSearchMultiple.initialState, ids: ['toto'], entities: { 'toto': { datasetName: 'toto', isLoading: true, isLoaded: false, data: [] }} }; const action = new searchMultipleActions.RetrieveDataSuccessAction({ datasetName: 'toto', data: [1, 2] }); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(1); expect(state.ids).toContain('toto'); expect(state.entities['toto']).toEqual(expectedEntity); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should update data when fail', () => { const expectedEntity: DataByDataset = { datasetName: 'toto', isLoading: false, isLoaded: false, data: [] }; const initialState = { ...fromSearchMultiple.initialState, ids: ['toto'], entities: { 'toto': { datasetName: 'toto', isLoading: true, isLoaded: false, data: [] }} }; const action = new searchMultipleActions.RetrieveDataFailAction('toto'); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(1); expect(state.ids).toContain('toto'); expect(state.entities['toto']).toEqual(expectedEntity); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should change selectedData', () => { const { initialState } = fromSearchMultiple; const action = new searchMultipleActions.UpdateSelectedDataAction([{ dname: 'toto', data:[1, 2] }]); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(1); expect(state.selectedData).toContain({ dname: 'toto', data:[1, 2] }); expect(state).not.toEqual(initialState); }); it('should destroy results', () => { const initialState = { ...fromSearchMultiple.initialState, ids: ['toto'], entities: { 'toto': { datasetName: 'toto', isLoading: false, isLoaded: true, data: [1, 2] }}, datasetsCountIsLoaded: true, datasetsCount: [{ dname: 'toto', count: 2}], selectedData: [{ dname: 'toto', data:[1, 2] }] }; const action = new searchMultipleActions.DestroyResultsAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); expect(state.currentStep).toBeNull(); expect(state.positionStepChecked).toBeFalsy(); expect(state.datasetsStepChecked).toBeFalsy(); expect(state.resultStepChecked).toBeFalsy(); expect(state.selectedDatasets.length).toEqual(0); expect(state.datasetsCountIsLoading).toBeFalsy(); expect(state.datasetsCountIsLoaded).toBeFalsy(); expect(state.datasetsCount.length).toEqual(0); expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); it('should reset search multiple', () => { const initialState = { ...fromSearchMultiple.initialState, ids: ['toto'], entities: { 'toto': { datasetName: 'toto', isLoading: false, isLoaded: true, data: [1, 2] }}, pristine: false, currentStep: 'datasets', positionStepChecked: true, datasetsStepChecked: true, resultStepChecked: true, selectedDatasets: ['toto'], datasetsCountIsLoading: true, datasetsCountIsLoaded: true, datasetsCount: [{ dname: 'toto', count: 2}], selectedData: [{ dname: 'toto', data:[1, 2] }] }; const action = new searchMultipleActions.DestroyResultsAction(); const state = fromSearchMultiple.reducer(initialState, action); expect(state.ids.length).toEqual(0); expect(state.entities).toEqual({}); expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull(); // expect(state.positionStepChecked).toBeFalsy(); // expect(state.datasetsStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.selectedDatasets.length).toEqual(0); // expect(state.datasetsCountIsLoading).toBeFalsy(); // expect(state.datasetsCountIsLoaded).toBeFalsy(); // expect(state.datasetsCount.length).toEqual(0); // expect(state.selectedData.length).toEqual(0); expect(state).not.toEqual(initialState); }); // it('should change the currentStep', () => { // const { initialState } = fromSearch; // const action = new searchActions.ChangeStepAction('toto'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toEqual('toto'); // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // it('should set the datasetName and change pristine', () => { // const { initialState } = fromSearch; // const action = new searchActions.SelectDatasetAction('toto'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeFalsy(); // expect(state.currentStep).toBeNull(); // expect(state.datasetName).toBe('toto'); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set currentStep to "dataset"', () => { // const { initialState } = fromSearch; // const action = new searchActions.NewSearchAction('toto'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toEqual('dataset'); // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set criteriaStepChecked to true', () => { // const { initialState } = fromSearch; // const action = new searchActions.CriteriaChecked(); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeTruthy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set outputStepChecked to true', () => { // const { initialState } = fromSearch; // const action = new searchActions.OutputChecked(); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeTruthy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set resultStepChecked to true', () => { // const { initialState } = fromSearch; // const action = new searchActions.ResultChecked(); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeTruthy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set coneSearchAdded to true', () => { // const { initialState } = fromSearch; // const action = new searchActions.IsConeSearchAddedAction(true); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeTruthy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // // it('should set criteriaList', () => { // const { initialState } = fromSearch; // const action = new searchActions.UpdateCriteriaListAction(CRITERIA_LIST); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(2); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should add criterion to criteriaList', () => { // const criterion: FieldCriterion = { id: 3, type: 'field', operator: 'eq', value: 'fd_crit_3' }; // const { initialState } = fromSearch; // const action = new searchActions.AddCriterionAction(criterion); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(1); // expect(state.criteriaList[0].id).toEqual(3); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should remove criterion to criteriaList', () => { // const criterion: FieldCriterion = { id: 2, type: 'field', operator: 'eq', value: 'fd_crit_2' }; // const initialState = { ...fromSearch.initialState, criteriaList: CRITERIA_LIST }; // const action = new searchActions.DeleteCriterionAction(criterion.id); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(1); // expect(state.criteriaList[0].id).toEqual(1); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set outputList', () => { // const { initialState } = fromSearch; // const action = new searchActions.UpdateOutputListAction([1, 2]); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(2); // expect(state.outputList).toContain(1); // expect(state.outputList).toContain(2); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set outputListEmpty to false', () => { // const { initialState } = fromSearch; // const action = new searchActions.OutputListEmptyAction(false); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeFalsy(); // expect(state).not.toEqual(initialState); // }); // // it('should set searchData', () => { // const { initialState } = fromSearch; // const action = new searchActions.RetrieveDataSuccessAction(['data_1', 'data_2']); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData.length).toBe(2); // expect(state.searchData).toContain('data_1'); // expect(state.searchData).toContain('data_2'); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set dataLength', () => { // const { initialState } = fromSearch; // const action = new searchActions.GetDataLengthSuccessAction(12); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBe(12); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should add data to selectedData', () => { // const { initialState } = fromSearch; // const action = new searchActions.AddSelectedDataAction(1); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(1); // expect(state.selectedData).toContain(1); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should remove data to selectedData', () => { // const initialState = { ...fromSearch.initialState, selectedData: ['data_1', 'data_2'] }; // const action = new searchActions.DeleteSelectedDataAction('data_2'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(1); // expect(state.selectedData).toContain('data_1'); // expect(state.selectedData).not.toContain('data_2'); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set processWip to true and processDone to false', () => { // const { initialState } = fromSearch; // const action = new searchActions.ExecuteProcessAction('process_type'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeTruthy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set processId', () => { // const { initialState } = fromSearch; // const action = new searchActions.ExecuteProcessWipAction('toto'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBe('toto'); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should set processWip to false and processDone to true', () => { // const { initialState } = fromSearch; // const action = new searchActions.ExecuteProcessSuccessAction('toto'); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeTruthy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should unset processId and set processWip and processDone to false', () => { // const initialState = { // ...fromSearch.initialState, // processId: 'toto', // processWip: true, // processDone: true // }; // const action = new searchActions.ExecuteProcessFailAction(); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should unset searchData and dataLength', () => { // const initialState = { // ...fromSearch.initialState, // searchData: ['toto', 'titi', 'tutu'], // dataLength: 3 // }; // const action = new searchActions.DestroyResultsAction(); // const state = fromSearch.reducer(initialState, action); // // expect(state.pristine).toBeTruthy(); // expect(state.currentStep).toBeNull() // expect(state.datasetName).toBeNull(); // expect(state.criteriaStepChecked).toBeFalsy(); // expect(state.outputStepChecked).toBeFalsy(); // expect(state.resultStepChecked).toBeFalsy(); // expect(state.coneSearchAdded).toBeFalsy(); // expect(state.criteriaList.length).toEqual(0); // expect(state.outputList.length).toEqual(0); // expect(state.searchData).toBeNull(); // expect(state.dataLength).toBeNull(); // expect(state.selectedData.length).toEqual(0); // expect(state.processWip).toBeFalsy(); // expect(state.processDone).toBeFalsy(); // expect(state.processId).toBeNull(); // expect(state.outputListEmpty).toBeNull(); // expect(state).not.toEqual(initialState); // }); // // it('should get pristine', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getPristine(state)).toBeTruthy(); // }); // // it('should get currentStep', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getCurrentStep(state)).toBeNull(); // }); // // it('should get datasetName', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getDatasetName(state)).toBeNull(); // }); // // it('should get criteriaStepChecked', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getCriteriaStepChecked(state)).toBeFalsy(); // }); // // it('should get outputStepChecked', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getOutputStepChecked(state)).toBeFalsy(); // }); // // it('should get resultStepChecked', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getResultStepChecked(state)).toBeFalsy(); // }); // // it('should get coneSearchAdded', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getIsConeSearchAdded(state)).toBeFalsy(); // }); // // it('should get criteriaList', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getCriteriaList(state).length).toEqual(0); // }); // // it('should get outputList', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getOutputList(state).length).toEqual(0); // }); // // it('should get outputListEmpty', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getOutputListEmpty(state)).toBeNull(); // }); // // it('should get searchData', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getSearchData(state)).toBeNull(); // }); // // it('should get dataLength', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getDataLength(state)).toBeNull(); // }); // // it('should get selectedData', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getSelectedData(state).length).toEqual(0); // }); // // it('should get processWip', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getProcessWip(state)).toBeFalsy(); // }); // // it('should get processDone', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getProcessDone(state)).toBeFalsy(); // }); // // it('should get processId', () => { // const action = {} as searchActions.Actions; // const state = fromSearch.reducer(undefined, action); // // expect(fromSearch.getProcessId(state)).toBeNull(); // }); });