diff options
author | Jason <jason.daurus@gmail.com> | 2016-07-27 00:39:01 +0800 |
---|---|---|
committer | Jason <jason.daurus@gmail.com> | 2016-07-27 00:39:01 +0800 |
commit | 2b9e5dcd1b93792bcfa1df07352cff1ecffbf36d (patch) | |
tree | 4b7875568e507d8bbf5359ae39395e287e0df9d5 /web/src/js/__tests__/ducks/utils/listSpec.js | |
parent | 7b51f12813ab145304c15f0d39222a2811e6ca4d (diff) | |
download | mitmproxy-2b9e5dcd1b93792bcfa1df07352cff1ecffbf36d.tar.gz mitmproxy-2b9e5dcd1b93792bcfa1df07352cff1ecffbf36d.tar.bz2 mitmproxy-2b9e5dcd1b93792bcfa1df07352cff1ecffbf36d.zip |
[web] change test files
Diffstat (limited to 'web/src/js/__tests__/ducks/utils/listSpec.js')
-rw-r--r-- | web/src/js/__tests__/ducks/utils/listSpec.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/web/src/js/__tests__/ducks/utils/listSpec.js b/web/src/js/__tests__/ducks/utils/listSpec.js new file mode 100644 index 00000000..72d162f2 --- /dev/null +++ b/web/src/js/__tests__/ducks/utils/listSpec.js @@ -0,0 +1,63 @@ +jest.unmock('lodash') +jest.unmock('../../../ducks/utils/list') + +import reduce, * as list from '../../../ducks/utils/list' + +describe('list reduce', () => { + + it('should add item', () => { + const state = createState([ + { id: 1 }, + { id: 2 } + ]) + const result = createState([ + { id: 1 }, + { id: 2 }, + { id: 3 } + ]) + expect(reduce(state, list.add({ id: 3 }))).toEqual(result) + }) + + it('should update item', () => { + const state = createState([ + { id: 1, val: 1 }, + { id: 2, val: 2 } + ]) + const result = createState([ + { id: 1, val: 1 }, + { id: 2, val: 3 } + ]) + expect(reduce(state, list.update({ id: 2, val: 3 }))).toEqual(result) + }) + + it('should remove item', () => { + const state = createState([ + { id: 1 }, + { id: 2 } + ]) + const result = createState([ + { id: 1 } + ]) + result.byId[2] = result.indexOf[2] = null + expect(reduce(state, list.remove(2))).toEqual(result) + }) + + it('should replace all items', () => { + const state = createState([ + { id: 1 }, + { id: 2 } + ]) + const result = createState([ + { id: 1 } + ]) + expect(reduce(state, list.receive([{ id: 1 }]))).toEqual(result) + }) +}) + +function createState(items) { + return { + data: items, + byId: _.fromPairs(items.map((item, index) => [item.id, item])), + indexOf: _.fromPairs(items.map((item, index) => [item.id, index])) + } +} |