import type { APIRequestContext } from "@playwright/test"; import { authHeaders, BACKEND_URL } from "../helpers/api/auth"; import type { WorkspaceFixtures } from "./workspace.fixture"; export type ChatThreadRow = { id: number; title: string; workspace_id: number; visibility: string; created_by_id: string | null; created_at: string; updated_at: string; }; export type ChatThreadFixtures = { chatThread: ChatThreadRow; }; type ChatThreadFixtureArgs = WorkspaceFixtures & { request: APIRequestContext; }; export const chatThreadFixtures = { chatThread: async ( { request, apiToken, workspace }: ChatThreadFixtureArgs, use: (thread: ChatThreadRow) => Promise ) => { const response = await request.post(`${BACKEND_URL}/api/v1/threads`, { headers: authHeaders(apiToken), data: { title: "e2e-drive-journey", workspace_id: workspace.id, visibility: "PRIVATE", }, }); if (!response.ok()) { throw new Error(`create chat thread failed (${response.status()}): ${await response.text()}`); } await use((await response.json()) as ChatThreadRow); }, };