//
// 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: "",
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
});
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";
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
}
],
it('should remove activity on projects list', () => {
const initialState = {
items: [{
- data: mockProject(),
+ data: mockProjectResource(),
id: "1",
open: true,
active: true,
};
const project = {
items: [{
- data: { ...initialState.items[0] },
+ data: mockProjectResource(),
id: "1",
open: true,
active: false,
it('should toggle project tree item activity', () => {
const initialState = {
items: [{
- data: mockProject(),
+ data: mockProjectResource(),
id: "1",
open: true,
active: false,
};
const project = {
items: [{
- data: { ...initialState.items[0] },
+ data: mockProjectResource(),
id: "1",
open: true,
active: true,
it('should close project tree item ', () => {
const initialState = {
items: [{
- data: mockProject(),
+ data: mockProjectResource(),
id: "1",
open: true,
active: false,
};
const project = {
items: [{
- data: { ...initialState.items[0] },
+ data: mockProjectResource(),
id: "1",
open: false,
active: false,
});
});
-
-const mockProject = (data: Partial<ProjectResource> = {}) => mockResource(ResourceKind.Group, { ...data, groupClass: GroupClass.Project }) as ProjectResource;