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([]) + }) +})