//
// SPDX-License-Identifier: AGPL-3.0
-import { GroupResource } from "./group";
+import { GroupClass, GroupResource } 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: "",
groupClass: null,
href: "",
isTrashed: false,
- kind: ResourceKind.Group,
+ kind: ResourceKind.GROUP,
modifiedAt: "",
modifiedByClientUuid: "",
modifiedByUserUuid: "",
properties: "",
trashAt: "",
uuid: "",
- writeableBy: []
+ writableBy: [],
+ ensure_unique_name: true,
+ ...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: ResourceKind.NONE,
modifiedAt: "",
modifiedByClientUuid: "",
modifiedByUserUuid: "",
ownerUuid: "",
- uuid: ""
+ uuid: "",
+ ...data
});