From 43226e701be08a18921d0353f13605fd84c3e0b4 Mon Sep 17 00:00:00 2001 From: Tifenn Guillas <tifenn.guillas@lam.fr> Date: Thu, 16 Sep 2021 16:16:08 +0200 Subject: [PATCH] Tests on selectors => DONE --- client/.editorconfig | 2 +- .../selectors/cone-search.selector.spec.ts | 29 +++ .../store/selectors/detail.selector.spec.ts | 39 ++++ .../store/selectors/samp.selector.spec.ts | 9 + .../store/selectors/search.selector.spec.ts | 182 ++++++++++++++++++ 5 files changed, 260 insertions(+), 1 deletion(-) create mode 100644 client/src/app/instance/store/selectors/cone-search.selector.spec.ts create mode 100644 client/src/app/instance/store/selectors/detail.selector.spec.ts create mode 100644 client/src/app/instance/store/selectors/samp.selector.spec.ts create mode 100644 client/src/app/instance/store/selectors/search.selector.spec.ts diff --git a/client/.editorconfig b/client/.editorconfig index 59d9a3a3..07926923 100644 --- a/client/.editorconfig +++ b/client/.editorconfig @@ -4,7 +4,7 @@ root = true [*] charset = utf-8 indent_style = space -indent_size = 2 +indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true diff --git a/client/src/app/instance/store/selectors/cone-search.selector.spec.ts b/client/src/app/instance/store/selectors/cone-search.selector.spec.ts new file mode 100644 index 00000000..82b1b318 --- /dev/null +++ b/client/src/app/instance/store/selectors/cone-search.selector.spec.ts @@ -0,0 +1,29 @@ +import * as coneSearchSelector from './cone-search.selector'; +import * as fromConeSearch from '../reducers/cone-search.reducer'; + +describe('Cone search selector', () => { + it('should get coneSearch', () => { + const state = { instance: { coneSearch: { ...fromConeSearch.initialState }}}; + expect(coneSearchSelector.selectConeSearch(state)).toBeNull(); + }); + + it('should get resolver', () => { + const state = { instance: { coneSearch: { ...fromConeSearch.initialState }}}; + expect(coneSearchSelector.selectResolver(state)).toBeNull(); + }); + + it('should get resolverIsLoading', () => { + const state = { instance: { coneSearch: { ...fromConeSearch.initialState }}}; + expect(coneSearchSelector.selectResolverIsLoading(state)).toBeFalsy(); + }); + + it('should get resolverIsLoaded', () => { + const state = { instance: { coneSearch: { ...fromConeSearch.initialState }}}; + expect(coneSearchSelector.selectResolverIsLoaded(state)).toBeFalsy(); + }); + + it('should get cone search by route', () => { + const state = { router: { state: { queryParams: { cs: 'myConeSearch' }}}}; + expect(coneSearchSelector.selectConeSearchByRoute(state)).toEqual('myConeSearch'); + }); +}); diff --git a/client/src/app/instance/store/selectors/detail.selector.spec.ts b/client/src/app/instance/store/selectors/detail.selector.spec.ts new file mode 100644 index 00000000..b6f0a0ae --- /dev/null +++ b/client/src/app/instance/store/selectors/detail.selector.spec.ts @@ -0,0 +1,39 @@ +import * as detailSelector from './detail.selector'; +import * as fromDetail from '../reducers/detail.reducer'; + +describe('Detail selector', () => { + it('should get object', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectObject(state)).toBeNull(); + }); + + it('should get objectIsLoading', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectObjectIsLoading(state)).toBeFalsy(); + }); + + it('should get objectIsLoaded', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectObjectIsLoaded(state)).toBeFalsy(); + }); + + it('should get spectraCSV', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectSpectraCSV(state)).toBeNull(); + }); + + it('should get spectraIsLoading', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectSpectraIsLoading(state)).toBeFalsy(); + }); + + it('should get spectraIsLoaded', () => { + const state = { instance: { detail: { ...fromDetail.initialState }}}; + expect(detailSelector.selectSpectraIsLoaded(state)).toBeFalsy(); + }); + + it('should get id object by route', () => { + const state = { router: { state: { params: { id: 'myObjectId' }}}}; + expect(detailSelector.selectIdByRoute(state)).toEqual('myObjectId'); + }); +}); diff --git a/client/src/app/instance/store/selectors/samp.selector.spec.ts b/client/src/app/instance/store/selectors/samp.selector.spec.ts new file mode 100644 index 00000000..bf57932e --- /dev/null +++ b/client/src/app/instance/store/selectors/samp.selector.spec.ts @@ -0,0 +1,9 @@ +import * as sampSelector from './samp.selector'; +import * as fromSamp from '../reducers/samp.reducer'; + +describe('Samp selector', () => { + it('should get registered', () => { + const state = { instance: { samp: { ...fromSamp.initialState }}}; + expect(sampSelector.selectRegistered(state)).toBeFalsy(); + }); +}); diff --git a/client/src/app/instance/store/selectors/search.selector.spec.ts b/client/src/app/instance/store/selectors/search.selector.spec.ts new file mode 100644 index 00000000..db1a2d18 --- /dev/null +++ b/client/src/app/instance/store/selectors/search.selector.spec.ts @@ -0,0 +1,182 @@ +import * as searchSelector from './search.selector'; +import * as fromSearch from '../reducers/search.reducer'; +import * as fromConeSearch from '../reducers/cone-search.reducer'; +import { ConeSearch, Criterion, FieldCriterion } from '../models'; + +describe('Search selector', () => { + it('should get selectPristine', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectPristine(state)).toBeTruthy(); + }); + + it('should get currentDataset', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectCurrentDataset(state)).toBeNull(); + }); + + it('should get currentStep', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectCurrentStep(state)).toBeNull(); + }); + + it('should get criteriaStepChecked', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectCriteriaStepChecked(state)).toBeFalsy(); + }); + + it('should get outputStepChecked', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectOutputStepChecked(state)).toBeFalsy(); + }); + + it('should get resultStepChecked', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectResultStepChecked(state)).toBeFalsy(); + }); + + it('should get coneSearchAdded', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectIsConeSearchAdded(state)).toBeFalsy(); + }); + + it('should get criteriaList', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectCriteriaList(state).length).toEqual(0); + }); + + it('should get outputList', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectOutputList(state).length).toEqual(0); + }); + + it('should get dataLengthIsLoading', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectDataLengthIsLoading(state)).toBeFalsy(); + }); + + it('should get dataLengthIsLoaded', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectDataLengthIsLoaded(state)).toBeFalsy(); + }); + + it('should get dataLength', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectDataLength(state)).toBeNull(); + }); + + it('should get data', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectData(state).length).toEqual(0); + }); + + it('should get dataIsLoading', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectDataIsLoading(state)).toBeFalsy(); + }); + + it('should get dataIsLoaded', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectDataIsLoaded(state)).toBeFalsy(); + }); + + it('should get selectedData', () => { + const state = { instance: { search: { ...fromSearch.initialState }}}; + expect(searchSelector.selectSelectedData(state).length).toEqual(0); + }); + + it('should get queryParams without criteria', () => { + const outputList: number[] = [1, 2]; + const state = { + instance: { + search: { + ...fromSearch.initialState, + outputList + }, + coneSearch: { ...fromConeSearch.initialState } + } + }; + const expected = { s: '000', a: '1;2' }; + + expect(searchSelector.selectQueryParams(state)).toEqual(expected); + }); + + it('should get queryParams with criteria', () => { + const outputList: number[] = [1, 2]; + const criteriaList: Criterion[] = [ + { id: 1, type: 'field', operator: 'eq', value: 'one' } as FieldCriterion, + { id: 2, type: 'field', operator: 'eq', value: 'two' } as FieldCriterion + ]; + const state = { + instance: { + search: { + ...fromSearch.initialState, + outputList, + criteriaList + }, + coneSearch: { ...fromConeSearch.initialState } + } + }; + const expected = { s: '000', a: '1;2', c: '1::eq::one;2::eq::two' }; + + expect(searchSelector.selectQueryParams(state)).toEqual(expected); + }); + + it('should get queryParams with cone search', () => { + const outputList: number[] = [1, 2]; + const coneSearchAdded: boolean = true; + const coneSearch: ConeSearch = { ra: 3, dec: 4, radius: 5 }; + const state = { + instance: { + search: { + ...fromSearch.initialState, + outputList, + coneSearchAdded + }, + coneSearch: { + ...fromConeSearch.initialState, + coneSearch + } + } + }; + const expected = { s: '000', a: '1;2', cs: '3:4:5' }; + + expect(searchSelector.selectQueryParams(state)).toEqual(expected); + }); + + it('should get queryParams with checked steps', () => { + const criteriaStepChecked: boolean = true; + const outputStepChecked: boolean = true; + const resultStepChecked: boolean = true; + const outputList: number[] = [1, 2]; + const state = { + instance: { + search: { + ...fromSearch.initialState, + criteriaStepChecked, + outputStepChecked, + resultStepChecked, + outputList + }, + coneSearch: { ...fromConeSearch.initialState } + } + }; + const expected = { s: '111', a: '1;2' }; + + expect(searchSelector.selectQueryParams(state)).toEqual(expected); + }); + + it('should get steps by route', () => { + const state = { router: { state: { queryParams: { s: 'myParams' }}}}; + expect(searchSelector.selectStepsByRoute(state)).toEqual('myParams'); + }); + + it('should get criteria by route', () => { + const state = { router: { state: { queryParams: { c: 'myParams' }}}}; + expect(searchSelector.selectCriteriaListByRoute(state)).toEqual('myParams'); + }); + + it('should get output by route', () => { + const state = { router: { state: { queryParams: { a: 'myParams' }}}}; + expect(searchSelector.selectOutputListByRoute(state)).toEqual('myParams'); + }); +}); -- GitLab