diff options
author | Noah Loomans <noahloomans@gmail.com> | 2017-12-14 12:45:23 +0100 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2017-12-14 12:45:23 +0100 |
commit | 5caa2d35af001302b4b837ede18ef5c7041287af (patch) | |
tree | eb6eab8b9d0e547bde1ac11235e176ab0ee21a07 | |
parent | a77272bfbebed7239c0c49049e211f4a6e597617 (diff) |
Add tests for SEARCH/INPUT_CHANGE
-rw-r--r-- | src/client/react/reducers/search.test.js | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/src/client/react/reducers/search.test.js b/src/client/react/reducers/search.test.js index ccf6fae..13f79d2 100644 --- a/src/client/react/reducers/search.test.js +++ b/src/client/react/reducers/search.test.js @@ -1,11 +1,66 @@ -window.USERS = []; +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 search = require('./search').default; -const { changeSelectedResult } = require('../actions/search'); +const { inputChange, changeSelectedResult } = require('../actions/search'); describe('reducers', () => { describe('search', () => { + describe('SEARCH/INPUT_CHANGE', () => { + it('Returns no results when nothing is typed in', () => { + expect(search(undefined, inputChange(''))).toEqual({ + input: '', + results: [], + selectedResult: null, + isExactMatch: false, + }); + }); + + it('Returns no results when a space is typed in', () => { + expect(search(undefined, inputChange(' '))).toEqual({ + input: ' ', + results: [], + selectedResult: null, + isExactMatch: false, + }); + }); + + it('Preforms a basic search, only returning four results', () => { + expect(search(undefined, inputChange('18'))).toEqual({ + input: '18', + results: [ + 's/18561', + 's/18562', + 's/18563', + 's/18564', + ], + selectedResult: null, + isExactMatch: false, + }); + }); + + it('Selects the first result and sets isExactMatch to true when there is an exact match', () => { + expect(search(undefined, inputChange('18561'))).toEqual({ + input: '18561', + results: [ + 's/18561', + ], + selectedResult: 's/18561', + isExactMatch: true, + }); + }); + }); + describe('SEARCH/CHANGE_SELECTED_RESULT', () => { it('Does nothing when there are no results', () => { const prevState = { |