Fix tests
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 12 Jul 2018 14:09:26 +0000 (16:09 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 12 Jul 2018 14:09:26 +0000 (16:09 +0200)
Feature #13798

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/models/test-utils.ts
src/store/project/project-reducer.test.ts

index 4d75b1064a00505ba0b8aa2cf949e37dde6ad8ff..3f49dba6a3b27990a1161f0918393abf087f4392 100644 (file)
@@ -2,21 +2,11 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { GroupResource } from "./group";
+import { GroupResource, GroupClass } from "./group";
 import { Resource, ResourceKind } from "./resource";
+import { ProjectResource } from "./project";
 
-type ResourceUnion = GroupResource;
-
-export const mockResource = (kind: ResourceKind, data: Partial<Exclude<ResourceUnion, "kind">>) => {
-    switch (kind) {
-        case ResourceKind.Group:
-            return mockGroupResource({ ...data, kind });
-        default:
-            return mockCommonResource({ ...data, kind });
-    }
-};
-
-export const mockGroupResource = (data: Partial<Exclude<GroupResource, "kind">>): GroupResource => ({
+export const mockGroupResource = (data: Partial<GroupResource> = {}): GroupResource => ({
     createdAt: "",
     deleteAt: "",
     description: "",
@@ -33,17 +23,22 @@ export const mockGroupResource = (data: Partial<Exclude<GroupResource, "kind">>)
     properties: "",
     trashAt: "",
     uuid: "",
-    writeableBy: []
+    writeableBy: [],
+    ...data
 });
 
-const mockCommonResource = <T extends Resource>(data: Partial<T> & { kind: ResourceKind }): Resource => ({
+export const mockProjectResource = (data: Partial<ProjectResource> = {}): ProjectResource =>
+    mockGroupResource({ ...data, groupClass: GroupClass.Project }) as ProjectResource;
+
+export const mockCommonResource = (data: Partial<Resource>): Resource => ({
     createdAt: "",
     etag: "",
     href: "",
-    kind: data.kind,
+    kind: "",
     modifiedAt: "",
     modifiedByClientUuid: "",
     modifiedByUserUuid: "",
     ownerUuid: "",
-    uuid: ""
+    uuid: "",
+    ...data
 });
index b2def8197c784458e8282e3728b88879475ad3bb..970af6ca968b992b401157da8fc9d5e1c3e24f82 100644 (file)
@@ -6,7 +6,7 @@ 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 { mockProjectResource } from "../../models/test-utils";
 import { ProjectResource } from "../../models/project";
 import { GroupClass } from "../../models/group";
 
@@ -14,24 +14,23 @@ describe('project-reducer', () => {
 
     it('should load projects', () => {
         const initialState = undefined;
-        const project = mockProject({ ownerUuid: "test123" });
 
-        const projects = [project, project];
+        const projects = [mockProjectResource({ uuid: "1" }), mockProjectResource({ uuid: "2" })];
         const state = projectsReducer(initialState, actions.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
             }
             ],
@@ -47,7 +46,7 @@ describe('project-reducer', () => {
     it('should remove activity on projects list', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
@@ -58,7 +57,7 @@ describe('project-reducer', () => {
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
@@ -75,7 +74,7 @@ describe('project-reducer', () => {
     it('should toggle project tree item activity', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
@@ -86,7 +85,7 @@ describe('project-reducer', () => {
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: true,
@@ -105,7 +104,7 @@ describe('project-reducer', () => {
     it('should close project tree item ', () => {
         const initialState = {
             items: [{
-                data: mockProject(),
+                data: mockProjectResource(),
                 id: "1",
                 open: true,
                 active: false,
@@ -117,7 +116,7 @@ describe('project-reducer', () => {
         };
         const project = {
             items: [{
-                data: { ...initialState.items[0] },
+                data: mockProjectResource(),
                 id: "1",
                 open: false,
                 active: false,
@@ -181,5 +180,3 @@ describe("findTreeBranch", () => {
     });
 
 });
-
-const mockProject = (data: Partial<ProjectResource> = {}) => mockResource(ResourceKind.Group, { ...data, groupClass: GroupClass.Project }) as ProjectResource;