| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { test as base, expect } from "@playwright/test"
- import { createSdk, dirSlug, getWorktree, promptSelector, sessionPath } from "./utils"
- type TestFixtures = {
- sdk: ReturnType<typeof createSdk>
- gotoSession: (sessionID?: string) => Promise<void>
- }
- type WorkerFixtures = {
- directory: string
- slug: string
- }
- export const test = base.extend<TestFixtures, WorkerFixtures>({
- 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 }
|