Skip to content
File

Blob: tests/client/util/fixtures.ts

typescript65 lines
1import type { User, Workspace, WorkspaceMembershipSummary, Page, WorkspaceMember } from "@/shared/types";
2 
3export const TEST_TIMESTAMP = "2026-04-06T00:00:00.000Z";
4 
5export function createUser(overrides: Partial<User> = {}): User {
6 return {
7 id: "user-1",
8 email: "test@example.com",
9 name: "Test User",
10 avatar_url: null,
11 created_at: TEST_TIMESTAMP,
12 ...overrides,
13 };
14}
15 
16export function createWorkspace(overrides: Partial<Workspace> = {}): Workspace {
17 return {
18 id: "ws-1",
19 name: "Test Workspace",
20 slug: "test-workspace",
21 icon: null,
22 owner_id: "user-1",
23 created_at: TEST_TIMESTAMP,
24 ...overrides,
25 };
26}
27 
28export function createMembershipSummary(
29 overrides: Partial<WorkspaceMembershipSummary> = {},
30): WorkspaceMembershipSummary {
31 return {
32 ...createWorkspace(overrides),
33 role: overrides.role ?? "member",
34 };
35}
36 
37export function createPage(overrides: Partial<Page> = {}): Page {
38 return {
39 id: "page-1",
40 workspace_id: "ws-1",
41 parent_id: null,
42 kind: "doc",
43 title: "Test Page",
44 icon: null,
45 cover_url: null,
46 position: 0,
47 created_by: "user-1",
48 created_at: TEST_TIMESTAMP,
49 updated_at: TEST_TIMESTAMP,
50 archived_at: null,
51 archive_root_id: null,
52 ...overrides,
53 };
54}
55 
56export function createMember(overrides: Partial<WorkspaceMember> = {}): WorkspaceMember {
57 return {
58 user_id: "user-1",
59 workspace_id: "ws-1",
60 role: "member",
61 joined_at: TEST_TIMESTAMP,
62 ...overrides,
63 };
64}