aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/__tests__/ducks/flowViewSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js/__tests__/ducks/flowViewSpec.js')
-rw-r--r--web/src/js/__tests__/ducks/flowViewSpec.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/web/src/js/__tests__/ducks/flowViewSpec.js b/web/src/js/__tests__/ducks/flowViewSpec.js
new file mode 100644
index 00000000..d5d9a6d9
--- /dev/null
+++ b/web/src/js/__tests__/ducks/flowViewSpec.js
@@ -0,0 +1,67 @@
+jest.unmock('../../ducks/flows')
+jest.unmock('../../ducks/flowView')
+jest.unmock('../../ducks/utils/view')
+jest.unmock('../../ducks/utils/list')
+jest.unmock('./tutils')
+
+import { createStore } from './tutils'
+
+import flows, * as flowActions from '../../ducks/flows'
+import flowView, * as flowViewActions from '../../ducks/flowView'
+
+
+function testStore() {
+ let store = createStore({
+ flows,
+ flowView
+ })
+ for (let i of [1, 2, 3, 4]) {
+ store.dispatch(
+ flowActions.addFlow({ id: i })
+ )
+ }
+ return store
+}
+
+describe('select relative', () => {
+
+ function testSelect(start, relative, result) {
+ const store = testStore()
+ store.dispatch(flowActions.select(start))
+ expect(store.getState().flows.selected).toEqual(start ? [start] : [])
+ store.dispatch(flowViewActions.selectRelative(relative))
+ expect(store.getState().flows.selected).toEqual([result])
+ }
+
+ describe('previous', () => {
+
+ it('should select the previous flow', () => {
+ testSelect(3, -1, 2)
+ })
+
+ it('should not changed when first flow is selected', () => {
+ testSelect(1, -1, 1)
+ })
+
+ it('should select first flow if no flow is selected', () => {
+ testSelect(undefined, -1, 1)
+ })
+
+ })
+
+ describe('next', () => {
+
+ it('should select the next flow', () => {
+ testSelect(2, 1, 3)
+ })
+
+ it('should not changed when last flow is selected', () => {
+ testSelect(4, 1, 4)
+ })
+
+ it('should select last flow if no flow is selected', () => {
+ testSelect(undefined, 1, 4)
+ })
+
+ })
+})