diff options
| author | Adam <[email protected]> | 2026-01-19 05:22:35 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-19 09:03:52 -0600 |
| commit | 182c43a78f55d4c22440c7256cbf4ff464e01c6e (patch) | |
| tree | dc9e7ecfc0f15192a69fc18c0ae08af675d4bde0 /packages | |
| parent | f1daf3b4308cf85a3f61fb2f1d4b3f55316487b1 (diff) | |
| download | opencode-182c43a78f55d4c22440c7256cbf4ff464e01c6e.tar.gz opencode-182c43a78f55d4c22440c7256cbf4ff464e01c6e.zip | |
chore: cleanup
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/app/e2e/fixtures.ts | 40 | ||||
| -rw-r--r-- | packages/app/e2e/home.spec.ts | 2 | ||||
| -rw-r--r-- | packages/app/e2e/navigation.spec.ts | 10 | ||||
| -rw-r--r-- | packages/app/e2e/palette.spec.ts | 9 | ||||
| -rw-r--r-- | packages/app/e2e/session.spec.ts | 12 | ||||
| -rw-r--r-- | packages/app/e2e/terminal.spec.ts | 9 | ||||
| -rw-r--r-- | packages/app/e2e/utils.ts | 7 |
7 files changed, 57 insertions, 32 deletions
diff --git a/packages/app/e2e/fixtures.ts b/packages/app/e2e/fixtures.ts new file mode 100644 index 000000000..721d60049 --- /dev/null +++ b/packages/app/e2e/fixtures.ts @@ -0,0 +1,40 @@ +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 } diff --git a/packages/app/e2e/home.spec.ts b/packages/app/e2e/home.spec.ts index 5bb701076..c6fb0e3b0 100644 --- a/packages/app/e2e/home.spec.ts +++ b/packages/app/e2e/home.spec.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test" +import { test, expect } from "./fixtures" import { serverName } from "./utils" test("home renders and shows core entrypoints", async ({ page }) => { diff --git a/packages/app/e2e/navigation.spec.ts b/packages/app/e2e/navigation.spec.ts index 4d0d3b2b9..76923af6e 100644 --- a/packages/app/e2e/navigation.spec.ts +++ b/packages/app/e2e/navigation.spec.ts @@ -1,11 +1,9 @@ -import { test, expect } from "@playwright/test" -import { dirPath, dirSlug, getWorktree, promptSelector } from "./utils" - -test("project route redirects to /session", async ({ page }) => { - const directory = await getWorktree() - const slug = dirSlug(directory) +import { test, expect } from "./fixtures" +import { dirPath, promptSelector } from "./utils" +test("project route redirects to /session", async ({ page, directory, slug }) => { await page.goto(dirPath(directory)) + await expect(page).toHaveURL(new RegExp(`/${slug}/session`)) await expect(page.locator(promptSelector)).toBeVisible() }) diff --git a/packages/app/e2e/palette.spec.ts b/packages/app/e2e/palette.spec.ts index bad09aab9..617c55ac1 100644 --- a/packages/app/e2e/palette.spec.ts +++ b/packages/app/e2e/palette.spec.ts @@ -1,9 +1,8 @@ -import { test, expect } from "@playwright/test" -import { gotoSession, modKey, promptSelector } from "./utils" +import { test, expect } from "./fixtures" +import { modKey } from "./utils" -test("search palette opens and closes", async ({ page }) => { - await gotoSession(page) - await expect(page.locator(promptSelector)).toBeVisible() +test("search palette opens and closes", async ({ page, gotoSession }) => { + await gotoSession() await page.keyboard.press(`${modKey}+P`) diff --git a/packages/app/e2e/session.spec.ts b/packages/app/e2e/session.spec.ts index d44736a4f..19e25a421 100644 --- a/packages/app/e2e/session.spec.ts +++ b/packages/app/e2e/session.spec.ts @@ -1,9 +1,7 @@ -import { test, expect } from "@playwright/test" -import { createSdk, getWorktree, promptSelector, sessionPath } from "./utils" +import { test, expect } from "./fixtures" +import { promptSelector } from "./utils" -test("can open an existing session and type into the prompt", async ({ page }) => { - const directory = await getWorktree() - const sdk = createSdk(directory) +test("can open an existing session and type into the prompt", async ({ page, sdk, gotoSession }) => { const title = `e2e smoke ${Date.now()}` const created = await sdk.session.create({ title }).then((r) => r.data) @@ -11,11 +9,9 @@ test("can open an existing session and type into the prompt", async ({ page }) = const sessionID = created.id try { - await page.goto(sessionPath(directory, sessionID)) + await gotoSession(sessionID) const prompt = page.locator(promptSelector) - await expect(prompt).toBeVisible() - await prompt.click() await page.keyboard.type("hello from e2e") await expect(prompt).toContainText("hello from e2e") diff --git a/packages/app/e2e/terminal.spec.ts b/packages/app/e2e/terminal.spec.ts index 8f90a3c0c..fc558b632 100644 --- a/packages/app/e2e/terminal.spec.ts +++ b/packages/app/e2e/terminal.spec.ts @@ -1,9 +1,8 @@ -import { test, expect } from "@playwright/test" -import { gotoSession, promptSelector, terminalSelector, terminalToggleKey } from "./utils" +import { test, expect } from "./fixtures" +import { terminalSelector, terminalToggleKey } from "./utils" -test("terminal panel can be toggled", async ({ page }) => { - await gotoSession(page) - await expect(page.locator(promptSelector)).toBeVisible() +test("terminal panel can be toggled", async ({ page, gotoSession }) => { + await gotoSession() const terminal = page.locator(terminalSelector) const initiallyOpen = await terminal.isVisible() diff --git a/packages/app/e2e/utils.ts b/packages/app/e2e/utils.ts index c18b36802..eb0395950 100644 --- a/packages/app/e2e/utils.ts +++ b/packages/app/e2e/utils.ts @@ -1,6 +1,5 @@ import { createOpencodeClient } from "@opencode-ai/sdk/v2/client" import { base64Encode } from "@opencode-ai/util/encode" -import type { Page } from "@playwright/test" export const serverHost = process.env.PLAYWRIGHT_SERVER_HOST ?? "localhost" export const serverPort = process.env.PLAYWRIGHT_SERVER_PORT ?? "4096" @@ -37,9 +36,3 @@ export function dirPath(directory: string) { export function sessionPath(directory: string, sessionID?: string) { return `${dirPath(directory)}/session${sessionID ? `/${sessionID}` : ""}` } - -export async function gotoSession(page: Page, sessionID?: string) { - const directory = await getWorktree() - await page.goto(sessionPath(directory, sessionID)) - return { directory, slug: dirSlug(directory) } -} |
