X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ae7d952a97542c2cfc12f6f41ab0de93af278919..c90e813adcec89899d9db95843295a84fb058c3e:/src/store/project/project-reducer.test.ts diff --git a/src/store/project/project-reducer.test.ts b/src/store/project/project-reducer.test.ts index e5cd57e2..e8d6afc6 100644 --- a/src/store/project/project-reducer.test.ts +++ b/src/store/project/project-reducer.test.ts @@ -2,8 +2,9 @@ // // SPDX-License-Identifier: AGPL-3.0 -import projectsReducer from "./project-reducer"; +import projectsReducer, { getTreePath } from "./project-reducer"; import actions from "./project-action"; +import { TreeItem, TreeItemStatus } from "../../components/tree/tree"; describe('project-reducer', () => { it('should add new project to the list', () => { @@ -14,7 +15,8 @@ describe('project-reducer', () => { createdAt: '2018-01-01', modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', - uuid: 'test123' + uuid: 'test123', + kind: "" }; const state = projectsReducer(initialState, actions.CREATE_PROJECT(project)); @@ -29,7 +31,8 @@ describe('project-reducer', () => { createdAt: '2018-01-01', modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', - uuid: 'test123' + uuid: 'test123', + kind: "" }; const projects = [project, project]; @@ -62,6 +65,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: true, @@ -78,6 +82,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: true, @@ -100,6 +105,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: true, @@ -116,6 +122,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: true, @@ -139,6 +146,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: true, @@ -156,6 +164,7 @@ describe('project-reducer', () => { modifiedAt: '2018-01-01', ownerUuid: 'owner-test123', uuid: 'test123', + kind: 'example' }, id: "1", open: false, @@ -169,3 +178,53 @@ describe('project-reducer', () => { expect(state).toEqual(project); }); }); + +describe("findTreeBranch", () => { + + const createTreeItem = (id: string, items?: Array>): TreeItem => ({ + id, + items, + active: false, + data: "", + open: false, + status: TreeItemStatus.Initial + }); + + it("should return an array that matches path to the given item", () => { + const tree: Array> = [ + createTreeItem("1", [ + createTreeItem("1.1", [ + createTreeItem("1.1.1"), + createTreeItem("1.1.2") + ]) + ]), + createTreeItem("2", [ + createTreeItem("2.1", [ + createTreeItem("2.1.1"), + createTreeItem("2.1.2") + ]) + ]) + ]; + const branch = getTreePath(tree, "2.1.1"); + expect(branch.map(item => item.id)).toEqual(["2", "2.1", "2.1.1"]); + }); + + it("should return empty array if item is not found", () => { + const tree: Array> = [ + createTreeItem("1", [ + createTreeItem("1.1", [ + createTreeItem("1.1.1"), + createTreeItem("1.1.2") + ]) + ]), + createTreeItem("2", [ + createTreeItem("2.1", [ + createTreeItem("2.1.1"), + createTreeItem("2.1.2") + ]) + ]) + ]; + expect(getTreePath(tree, "3")).toHaveLength(0); + }); + +});