Clone state before updating on PROJECT_SUCCESS
[arvados-workbench2.git] / src / store / project / project-reducer.test.ts
index 65a856bddb8720109cf8d75f044d346c955c4de6..f14ee9a8ef055665033286ef4593469754151198 100644 (file)
@@ -8,21 +8,6 @@ import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
 import { ResourceKind } from "../../models/resource";
 
 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).toEqual([project]);
-    });
 
     it('should load projects', () => {
         const initialState = undefined;
@@ -38,22 +23,30 @@ describe('project-reducer', () => {
 
         const projects = [project, project];
         const state = projectsReducer(initialState, actions.PROJECTS_SUCCESS({ projects, parentItemId: undefined }));
-        expect(state).toEqual([{
-            active: false,
-            open: false,
-            id: "test123",
-            items: [],
-            data: project,
-            status: 0
-        }, {
-            active: false,
-            open: false,
-            id: "test123",
-            items: [],
-            data: project,
-            status: 0
-        }
-        ]);
+        expect(state).toEqual({
+            items: [{
+                active: false,
+                open: false,
+                id: "test123",
+                items: [],
+                data: project,
+                status: 0
+            }, {
+                active: false,
+                open: false,
+                id: "test123",
+                items: [],
+                data: project,
+                status: 0
+            }
+            ],
+            currentItemId: "",
+            creator: {
+                opened: false,
+                ownerUuid: "",
+                pending: false
+            }
+        });
     });
 
     it('should remove activity on projects list', () => {
@@ -73,7 +66,8 @@ describe('project-reducer', () => {
                 active: true,
                 status: 1
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
         const project = {
             items: [{
@@ -91,10 +85,11 @@ describe('project-reducer', () => {
                 active: false,
                 status: 1
             }],
-            currentItemId: "1"
+            currentItemId: "",
+            creator: { opened: false, pending: false, ownerUuid: "" },
         };
 
-        const state = projectsReducer(initialState, actions.RESET_PROJECT_TREE_ACTIVITY(initialState[0].id));
+        const state = projectsReducer(initialState, actions.RESET_PROJECT_TREE_ACTIVITY(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 
@@ -115,7 +110,8 @@ describe('project-reducer', () => {
                 active: false,
                 status: 1
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" }
         };
         const project = {
             items: [{
@@ -126,17 +122,19 @@ describe('project-reducer', () => {
                     modifiedAt: '2018-01-01',
                     ownerUuid: 'owner-test123',
                     uuid: 'test123',
-                    kind: ResourceKind.PROJECT
+                    kind: ResourceKind.PROJECT,
                 },
                 id: "1",
                 open: true,
                 active: true,
-                status: 1
+                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[0].id));
+        const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 
@@ -159,7 +157,8 @@ describe('project-reducer', () => {
                 status: 1,
                 toggled: false,
             }],
-            currentItemId: "1"
+            currentItemId: "1",
+            creator: { opened: false, pending: false, ownerUuid: "" }
         };
         const project = {
             items: [{
@@ -178,10 +177,11 @@ describe('project-reducer', () => {
                 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[0].id));
+        const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_OPEN(initialState.items[0].id));
         expect(state).toEqual(project);
     });
 });