Merge branch 'master'
[arvados-workbench2.git] / src / store / project / project-reducer.test.ts
index c80f18c82f1ef92a6032cbd60ce46687d0b7cd8f..c8eed87c71a70bec3bdbcd7157b569d7fc660552 100644 (file)
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import projectsReducer, { getTreePath } from "./project-reducer";
-import actions from "./project-action";
+import { projectsReducer, getTreePath } from "./project-reducer";
+import { projectActions } from "./project-action";
 import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
-import { ResourceKind } from "../../models/resource";
+import { mockProjectResource } from "../../models/test-utils";
 
 describe('project-reducer', () => {
-    it('should add new project to the list', () => {
-        const initialState = undefined;
-        const project = {
-            name: 'test',
-            href: 'href',
-            createdAt: '2018-01-01',
-            modifiedAt: '2018-01-01',
-            ownerUuid: 'owner-test123',
-            uuid: 'test123',
-            kind: ResourceKind.PROJECT
-        };
-
-        const state = projectsReducer(initialState, actions.CREATE_PROJECT(project));
-        expect(state.items[0].data).toEqual(project);
-    });
 
     it('should load projects', () => {
         const initialState = undefined;
-        const project = {
-            name: 'test',
-            href: 'href',
-            createdAt: '2018-01-01',
-            modifiedAt: '2018-01-01',
-            ownerUuid: 'owner-test123',
-            uuid: 'test123',
-            kind: ResourceKind.PROJECT
-        };
 
-        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,
+                data: mockProjectResource({ uuid: "1" }),
                 status: 0
             }, {
                 active: false,
                 open: false,
-                id: "test123",
+                id: "2",
                 items: [],
-                data: project,
+                data: mockProjectResource({ uuid: "2" }),
                 status: 0
             }
             ],
-            currentItemId: ""
+            currentItemId: "",
+            creator: {
+                opened: false,
+                ownerUuid: "",
+                pending: false
+            }
         });
     });
 
     it('should remove activity on projects list', () => {
         const initialState = {
             items: [{
-                data: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
                 status: 1
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
         const project = {
             items: [{
-                data: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
                 status: 1
             }],
-            currentItemId: ""
+            currentItemId: "",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
 
-        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: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
                 status: 1
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" }
         };
         const project = {
             items: [{
-                data: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT,
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
                 status: 1,
                 toggled: true
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
 
-        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);
     });
 
@@ -148,44 +101,30 @@ describe('project-reducer', () => {
     it('should close project tree item ', () => {
         const initialState = {
             items: [{
-                data: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
                 status: 1,
                 toggled: false,
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" }
         };
         const project = {
             items: [{
-                data: {
-                    name: 'test',
-                    href: 'href',
-                    createdAt: '2018-01-01',
-                    modifiedAt: '2018-01-01',
-                    ownerUuid: 'owner-test123',
-                    uuid: 'test123',
-                    kind: ResourceKind.PROJECT
-                },
+                data: mockProjectResource(),
                 id: "1",
                 open: false,
                 active: false,
                 status: 1,
                 toggled: true
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
 
-        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);
     });
 });