From f6c4448848f0aa1ef659c708bcb7b64024dd02fb Mon Sep 17 00:00:00 2001 From: Jed Richards Date: Sun, 23 Aug 2015 11:35:41 +0100 Subject: [PATCH] Add selector unit tests --- src/selectors/__test__/allExpenses-spec.js | 23 +++++++++++++++ src/selectors/__test__/allExpensesMap-spec.js | 28 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/selectors/__test__/allExpenses-spec.js create mode 100644 src/selectors/__test__/allExpensesMap-spec.js diff --git a/src/selectors/__test__/allExpenses-spec.js b/src/selectors/__test__/allExpenses-spec.js new file mode 100644 index 0000000..f1ef3d2 --- /dev/null +++ b/src/selectors/__test__/allExpenses-spec.js @@ -0,0 +1,23 @@ +import selector from '../allExpenses' + +describe('allExpenses selector', () => { + + it('combines all expenses into a single array', () => { + const state = { + project: { + members: [ + {expenses: [1,2]}, + {expenses: [3,4]} + ] + } + } + expect(selector(state)).toEqual([1,2,3,4]) + }) + + it('handles a project with no members', () => { + const state = { + project: {members: []} + } + expect(selector(state)).toEqual([]) + }) +}) diff --git a/src/selectors/__test__/allExpensesMap-spec.js b/src/selectors/__test__/allExpensesMap-spec.js new file mode 100644 index 0000000..4b6187d --- /dev/null +++ b/src/selectors/__test__/allExpensesMap-spec.js @@ -0,0 +1,28 @@ +import selector from '../allExpensesMap' + +describe('allExpensesMap selector', () => { + + it('combines all expenses into a single map', () => { + const state = { + project: { + members: [ + {expenses: [{slug: 1}, {slug: 2}]}, + {expenses: [{slug: 3}, {slug: 4}]} + ] + } + } + expect([...selector(state)]).toEqual([ + [1, {slug: 1}], + [2, {slug: 2}], + [3, {slug: 3}], + [4, {slug: 4}] + ]) + }) + + it('handles a project with no members', () => { + const state = { + project: {members: []} + } + expect([...selector(state)]).toEqual([]) + }) +})