import { test as base, expect } from "@playwright/test" import { createSdk, dirSlug, getWorktree, promptSelector, sessionPath } from "./utils" type TestFixtures = { sdk: ReturnType gotoSession: (sessionID?: string) => Promise } type WorkerFixtures = { directory: string slug: string } export const test = base.extend({ directory: [ async ({}, use) => { const directory = await getWorktree() await use(directory) }, { scope: "worker" }, ], slug: [ async ({ directory }, use) => { await use(dirSlug(directory)) }, { scope: "worker" }, ], sdk: async ({ directory }, use) => { await use(createSdk(directory)) }, gotoSession: async ({ page, directory }, use) => { const gotoSession = async (sessionID?: string) => { await page.goto(sessionPath(directory, sessionID)) await expect(page.locator(promptSelector)).toBeVisible() } await use(gotoSession) }, }) export { expect }