From 9efc432e160b429a0643c38e28140bcf42af30a7 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Thu, 28 Jun 2018 13:45:27 +0200 Subject: Add history to redux thunk --- src/client/react/reducers.test.js | 253 -------------------------------------- 1 file changed, 253 deletions(-) delete mode 100644 src/client/react/reducers.test.js (limited to 'src/client/react/reducers.test.js') diff --git a/src/client/react/reducers.test.js b/src/client/react/reducers.test.js deleted file mode 100644 index cd195b0..0000000 --- a/src/client/react/reducers.test.js +++ /dev/null @@ -1,253 +0,0 @@ -/** - * Copyright (C) 2018 Noah Loomans - * - * This file is part of rooster.hetmml.nl. - * - * rooster.hetmml.nl is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * rooster.hetmml.nl is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with rooster.hetmml.nl. If not, see . - * - */ - -window.USERS = [ - { type: 's', value: '18561' }, - { type: 's', value: '18562' }, - { type: 's', value: '18563' }, - { type: 's', value: '18564' }, - { type: 's', value: '18565' }, - { type: 's', value: '18566' }, - { type: 's', value: '18567' }, - { type: 's', value: '18568' }, - { type: 's', value: '18569' }, -]; - -const deepFreeze = require('deep-freeze'); -const reducer = require('./reducers').default; -const { DEFAULT_STATE } = require('./reducers')._test; - -describe('reducers', () => { - describe('search', () => { - describe('SEARCH/SET_USER', () => { - it('Resets the search state if the user is null', () => { - const prevState = { search: { foo: 'bar' } }; - const action = { type: 'SEARCH/SET_USER', user: null }; - - deepFreeze([prevState, action]); - - expect(reducer(prevState, action)).toEqual({ - search: DEFAULT_STATE.search, - }); - }); - - it('Sets all the values of that user properly', () => { - expect(reducer(undefined, { type: 'SEARCH/SET_USER', user: 's/18561' })).toEqual({ - ...DEFAULT_STATE, - search: { - results: [], - text: '18561', - selected: 's/18561', - }, - }); - }); - }); - - describe('SEARCH/INPUT_CHANGE', () => { - it('Returns no results when nothing is typed in', () => { - expect(reducer(undefined, { type: 'SEARCH/INPUT_CHANGE', searchText: '' })).toEqual({ - ...DEFAULT_STATE, - search: { - results: [], - text: '', - selected: null, - }, - }); - }); - - it('Returns no results when a space is typed in', () => { - expect(reducer(undefined, { type: 'SEARCH/INPUT_CHANGE', searchText: ' ' })).toEqual({ - ...DEFAULT_STATE, - search: { - results: [], - text: ' ', - selected: null, - }, - }); - }); - - it('Preforms a basic search, only returning four results', () => { - expect(reducer(undefined, { type: 'SEARCH/INPUT_CHANGE', searchText: '18' })).toEqual({ - ...DEFAULT_STATE, - search: { - results: [ - 's/18561', - 's/18562', - 's/18563', - 's/18564', - ], - text: '18', - selected: null, - }, - }); - }); - }); - - describe('SEARCH/CHANGE_SELECTED_RESULT', () => { - it('Does nothing when there are no results', () => { - const actionPlus = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 }; - const actionMin = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 }; - - deepFreeze([DEFAULT_STATE, actionPlus, actionMin]); - - const nextStatePlus = reducer(DEFAULT_STATE, actionPlus); - const nextStateMin = reducer(DEFAULT_STATE, actionMin); - expect(nextStatePlus).toEqual(DEFAULT_STATE); - expect(nextStateMin).toEqual(DEFAULT_STATE); - }); - - it('Switches to the correct selectedResult when no selected result is selected', () => { - const prevState = { - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: null, - }, - }; - - const actionPlus = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 }; - const actionMin = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 }; - - deepFreeze([prevState, actionPlus, actionMin]); - - const nextStatePlus = reducer(prevState, actionPlus); - const nextStateMin = reducer(prevState, actionMin); - - expect(nextStatePlus).toEqual({ - ...prevState, - search: { - ...prevState.search, - selected: 's/18561', - }, - }); - expect(nextStateMin).toEqual({ - ...prevState, - search: { - ...prevState.search, - selected: 's/18563', - }, - }); - }); - - it('Switches to the correct selectedResult when there is a selected result selected', () => { - const prevState = { - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: 's/18562', - }, - }; - - const actionPlus = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 }; - const actionMin = { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 }; - - deepFreeze([prevState, actionPlus, actionMin]); - - const nextStatePlus = reducer(prevState, actionPlus); - const nextStateMin = reducer(prevState, actionMin); - - expect(nextStatePlus).toEqual({ - ...prevState, - search: { - ...prevState.search, - selected: 's/18563', - }, - }); - expect(nextStateMin).toEqual({ - ...prevState, - search: { - ...prevState.search, - selected: 's/18561', - }, - }); - }); - - it('Properly wraps around when incrementing', () => { - expect(reducer({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: 's/18563', - }, - }, { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 })).toEqual({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: null, - }, - }); - - expect(reducer({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: null, - }, - }, { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: +1 })).toEqual({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: 's/18561', - }, - }); - }); - - it('Properly wraps around when decrementing', () => { - expect(reducer({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: 's/18561', - }, - }, { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 })).toEqual({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: null, - }, - }); - - expect(reducer({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: null, - }, - }, { type: 'SEARCH/CHANGE_SELECTED_RESULT', relativeChange: -1 })).toEqual({ - ...DEFAULT_STATE, - search: { - results: ['s/18561', 's/18562', 's/18563'], - text: '1856', - selected: 's/18563', - }, - }); - }); - }); - }); -}); -- cgit v1.1