Merge branch 'master' into 13902-ui-move-to-popup
[arvados-workbench2.git] / src / store / project / project-reducer.test.ts
index b2def8197c784458e8282e3728b88879475ad3bb..8cd3121eecb871c8d9fa538bcfdb6983cf1322f6 100644 (file)
@@ -2,44 +2,43 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import projectsReducer, { getTreePath } from "./project-reducer";
-import actions from "./project-action";
-import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
-import { ResourceKind } from "../../models/kinds";
-import { mockResource } from "../../models/test-utils";
-import { ProjectResource } from "../../models/project";
-import { GroupClass } from "../../models/group";
+import { projectsReducer, getTreePath } from "./project-reducer";
+import { projectActions } from "./project-action";
+import { TreeItem, TreeItemStatus } from "~/components/tree/tree";
+import { mockProjectResource } from "~/models/test-utils";
 
 describe('project-reducer', () => {
 
     it('should load projects', () => {
         const initialState = undefined;
-        const project = mockProject({ ownerUuid: "test123" });
 
-        const projects = [project, project];
-        const state = projectsReducer(initialState, actions.PROJECTS_SUCCESS({ projects, parentItemId: undefined }));
+        const projects = [mockProjectResource({ uuid: "1" }), mockProjectResource({ uuid: "2" })];
+        const state = projectsReducer(initialState, projectActions.PROJECTS_SUCCESS({ projects, parentItemId: undefined }));
         expect(state).toEqual({
             items: [{
                 active: false,
                 open: false,
-                id: "test123",
+                id: "1",
                 items: [],
-                data: project,
-                status: 0
+                data: mockProjectResource({ uuid: "1" }),
+                status: TreeItemStatus.INITIAL
             }, {
                 active: false,
                 open: false,
-                id: "test123",
+                id: "2",
                 items: [],
-                data: project,
-                status: 0
+                data: mockProjectResource({ uuid: "2" }),
+                status: TreeItemStatus.INITIAL
             }
             ],
             currentItemId: "",
             creator: {
                 opened: false,
                 ownerUuid: "",
-                pending: false
+            },
+            updater: {
+                opened: false,
+                uuid: ''
             }
         });
     });
@@ -47,57 +46,60 @@ describe('project-reducer', () => {
     it('should remove activity on projects list', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
-                status: 1
+                status: TreeItemStatus.PENDING
             }],
             currentItemId: "1",
-            creator: { opened: false, pending: false, ownerUuid: "" },
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
-                status: 1
+                status: TreeItemStatus.PENDING
             }],
             currentItemId: "",
-            creator: { opened: false, pending: false, ownerUuid: "" },
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
         };
 
-        const state = projectsReducer(initialState, actions.RESET_PROJECT_TREE_ACTIVITY(initialState.items[0].id));
+        const state = projectsReducer(initialState, projectActions.RESET_PROJECT_TREE_ACTIVITY(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 
     it('should toggle project tree item activity', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
-                status: 1
+                status: TreeItemStatus.PENDING
             }],
             currentItemId: "1",
-            creator: { opened: false, pending: false, ownerUuid: "" }
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
-                status: 1,
-                toggled: true
+                status: TreeItemStatus.PENDING,
             }],
             currentItemId: "1",
-            creator: { opened: false, pending: false, ownerUuid: "" },
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
         };
 
-        const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(initialState.items[0].id));
+        const state = projectsReducer(initialState, projectActions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 
@@ -105,30 +107,31 @@ describe('project-reducer', () => {
     it('should close project tree item ', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
-                status: 1,
-                toggled: false,
+                status: TreeItemStatus.PENDING,
             }],
             currentItemId: "1",
-            creator: { opened: false, pending: false, ownerUuid: "" }
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: false,
                 active: false,
-                status: 1,
-                toggled: true
+                status: TreeItemStatus.PENDING,
             }],
             currentItemId: "1",
-            creator: { opened: false, pending: false, ownerUuid: "" },
+            creator: { opened: false, ownerUuid: "" },
+            updater: { opened: false, uuid: '' }
+
         };
 
-        const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_OPEN(initialState.items[0].id));
+        const state = projectsReducer(initialState, projectActions.TOGGLE_PROJECT_TREE_ITEM_OPEN(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 });
@@ -140,7 +143,7 @@ describe("findTreeBranch", () => {
         active: false,
         data: "",
         open: false,
-        status: TreeItemStatus.Initial
+        status: TreeItemStatus.INITIAL
     });
 
     it("should return an array that matches path to the given item", () => {
@@ -181,5 +184,3 @@ describe("findTreeBranch", () => {
     });
 
 });
-
-const mockProject = (data: Partial<ProjectResource> = {}) => mockResource(ResourceKind.Group, { ...data, groupClass: GroupClass.Project }) as ProjectResource;