X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/d1af457494186adb375ce2c012cb58685e0556e3..72ed766fa1a94853a1c57d0f43390a81e3d92c90:/src/store/tree-picker/tree-picker-reducer.test.ts diff --git a/src/store/tree-picker/tree-picker-reducer.test.ts b/src/store/tree-picker/tree-picker-reducer.test.ts index 56a3ba5d..3a0b60e1 100644 --- a/src/store/tree-picker/tree-picker-reducer.test.ts +++ b/src/store/tree-picker/tree-picker-reducer.test.ts @@ -2,10 +2,11 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { createTree, getNodeValue, getNodeChildrenIds } from "~/models/tree"; +import { createTree, getNodeChildrenIds, getNode, TreeNodeStatus } from '~/models/tree'; +import { pipe } from 'lodash/fp'; import { treePickerReducer } from "./tree-picker-reducer"; import { treePickerActions } from "./tree-picker-actions"; -import { TreeItemStatus } from "~/components/tree/tree"; +import { TreePicker } from './tree-picker'; import { initTreeNode } from '~/models/tree'; describe('TreePickerReducer', () => { @@ -17,15 +18,14 @@ describe('TreePickerReducer', () => { it('LOAD_TREE_PICKER_NODE', () => { const node = initTreeNode({ id: '1', value: '1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE({ id: '1', pickerId: "projects" }))); + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE({ id: '1', pickerId: "projects" })) + )({ projects: createTree<{}>() }); - expect(getNodeValue('1')(newState.projects)).toEqual({ + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - status: TreeItemStatus.PENDING + status: TreeNodeStatus.PENDING }); }); @@ -38,69 +38,68 @@ describe('TreePickerReducer', () => { it('LOAD_TREE_PICKER_NODE_SUCCESS', () => { const node = initTreeNode({ id: '1', value: '1' }); const subNode = initTreeNode({ id: '1.1', value: '1.1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '1', nodes: [subNode], pickerId: "projects" }))); + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '1', nodes: [subNode], pickerId: "projects" })) + )({ projects: createTree<{}>() }); expect(getNodeChildrenIds('1')(newState.projects)).toEqual(['1.1']); - expect(getNodeValue('1')(newState.projects)).toEqual({ + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - status: TreeItemStatus.LOADED + children: ['1.1'], + status: TreeNodeStatus.LOADED }); }); - it('TOGGLE_TREE_PICKER_NODE_COLLAPSE - collapsed', () => { + it('TOGGLE_TREE_PICKER_NODE_COLLAPSE - expanded', () => { const node = initTreeNode({ id: '1', value: '1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" }))); - expect(getNodeValue('1')(newState.projects)).toEqual({ + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" })) + )({ projects: createTree<{}>() }); + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - collapsed: false + expanded: true }); }); it('TOGGLE_TREE_PICKER_NODE_COLLAPSE - expanded', () => { const node = initTreeNode({ id: '1', value: '1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" }))); - expect(getNodeValue('1')(newState.projects)).toEqual({ + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_COLLAPSE({ id: '1', pickerId: "projects" })), + )({ projects: createTree<{}>() }); + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - collapsed: true + expanded: false }); }); - it('TOGGLE_TREE_PICKER_NODE_SELECT - selected', () => { + it('ACTIVATE_TREE_PICKER_NODE', () => { const node = initTreeNode({ id: '1', value: '1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: '1', pickerId: "projects" }))); - expect(getNodeValue('1')(newState.projects)).toEqual({ + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: '1', pickerId: "projects" })), + )({ projects: createTree<{}>() }); + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - selected: true + active: true }); }); - it('TOGGLE_TREE_PICKER_NODE_SELECT - not selected', () => { + it('TOGGLE_TREE_PICKER_NODE_SELECTION', () => { const node = initTreeNode({ id: '1', value: '1' }); - const [newState] = [{ - projects: createTree<{}>() - }] - .map(state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: '1', pickerId: "projects" }))) - .map(state => treePickerReducer(state, treePickerActions.ACTIVATE_TREE_PICKER_NODE({ id: '1', pickerId: "projects" }))); - expect(getNodeValue('1')(newState.projects)).toEqual({ + const subNode = initTreeNode({ id: '1.1', value: '1.1' }); + const newState = pipe( + (state: TreePicker) => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '', nodes: [node], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({ id: '1', nodes: [subNode], pickerId: "projects" })), + state => treePickerReducer(state, treePickerActions.TOGGLE_TREE_PICKER_NODE_SELECTION({ id: '1.1', pickerId: "projects" })), + )({ projects: createTree<{}>() }); + expect(getNode('1')(newState.projects)).toEqual({ ...initTreeNode({ id: '1', value: '1' }), - selected: false + selected: true, + children: ['1.1'], + status: TreeNodeStatus.LOADED, }); }); });