//
// 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', () => {
createdAt: '2018-01-01',
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
- uuid: 'test123'
+ uuid: 'test123',
+ kind: ""
};
const state = projectsReducer(initialState, actions.CREATE_PROJECT(project));
createdAt: '2018-01-01',
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
- uuid: 'test123'
+ uuid: 'test123',
+ kind: ""
};
const projects = [project, project];
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: true,
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: true,
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: true,
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: true,
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: true,
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
+ kind: 'example'
},
id: "1",
open: false,
expect(state).toEqual(project);
});
});
+
+describe("findTreeBranch", () => {
+
+ const createTreeItem = (id: string, items?: Array<TreeItem<string>>): TreeItem<string> => ({
+ 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<TreeItem<string>> = [
+ 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<TreeItem<string>> = [
+ 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);
+ });
+
+});