import projectsReducer, { getTreePath } from "./project-reducer";
import actions from "./project-action";
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: ""
- };
-
- const state = projectsReducer(initialState, actions.CREATE_PROJECT(project));
- expect(state).toEqual([project]);
- });
it('should load projects', () => {
const initialState = undefined;
modifiedAt: '2018-01-01',
ownerUuid: 'owner-test123',
uuid: 'test123',
- kind: ""
+ kind: ResourceKind.PROJECT
};
const projects = [project, project];
const state = projectsReducer(initialState, actions.PROJECTS_SUCCESS({ projects, parentItemId: undefined }));
- expect(state).toEqual([{
+ expect(state).toEqual({
+ items: [{
active: false,
open: false,
id: "test123",
data: project,
status: 0
}
- ]);
+ ],
+ 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
+ },
+ id: "1",
+ open: true,
+ active: true,
+ status: 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
+ },
+ id: "1",
+ open: true,
+ active: false,
+ status: 1
+ }],
+ currentItemId: "",
+ creator: { opened: false, pending: false, ownerUuid: "" },
+ };
+
+ const state = projectsReducer(initialState, actions.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
+ },
+ id: "1",
+ open: true,
+ active: false,
+ status: 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,
+ },
+ id: "1",
+ open: true,
+ active: true,
+ status: 1,
+ toggled: true
+ }],
+ currentItemId: "1",
+ creator: { opened: false, pending: false, ownerUuid: "" },
+ };
+
+ const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(initialState.items[0].id));
+ expect(state).toEqual(project);
+ });
+
+
+ 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
+ },
+ id: "1",
+ open: true,
+ active: false,
+ status: 1,
+ toggled: false,
+ }],
+ 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
+ },
+ id: "1",
+ open: false,
+ active: false,
+ status: 1,
+ toggled: true
+ }],
+ currentItemId: "1",
+ creator: { opened: false, pending: false, ownerUuid: "" },
+ };
+
+ const state = projectsReducer(initialState, actions.TOGGLE_PROJECT_TREE_ITEM_OPEN(initialState.items[0].id));
+ expect(state).toEqual(project);
});
});
describe("findTreeBranch", () => {
-
const createTreeItem = (id: string, items?: Array<TreeItem<string>>): TreeItem<string> => ({
id,
items,