//
// 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: ''
}
});
});
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);
});
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);
});
});
active: false,
data: "",
open: false,
- status: TreeItemStatus.Initial
+ status: TreeItemStatus.INITIAL
});
it("should return an array that matches path to the given item", () => {
});
});
-
-const mockProject = (data: Partial<ProjectResource> = {}) => mockResource(ResourceKind.Group, { ...data, groupClass: GroupClass.Project }) as ProjectResource;