summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-19 06:54:47 -0600
committerAdam <[email protected]>2026-01-19 09:03:52 -0600
commit2b086f0584ad803f27bbf386b00b04ecdee204fe (patch)
treea53d4b1312b338539bdf8df04e9f116d2909f3f2
parentb90315bc7ee745f9afb81fb3cfab69b42980b79d (diff)
downloadopencode-2b086f0584ad803f27bbf386b00b04ecdee204fe.tar.gz
opencode-2b086f0584ad803f27bbf386b00b04ecdee204fe.zip
test(app): more e2e tests
-rw-r--r--packages/app/e2e/context.spec.ts28
-rw-r--r--packages/app/e2e/file-open.spec.ts24
-rw-r--r--packages/app/e2e/sidebar.spec.ts20
3 files changed, 72 insertions, 0 deletions
diff --git a/packages/app/e2e/context.spec.ts b/packages/app/e2e/context.spec.ts
new file mode 100644
index 000000000..dbfeda8d8
--- /dev/null
+++ b/packages/app/e2e/context.spec.ts
@@ -0,0 +1,28 @@
+import { test, expect } from "./fixtures"
+import { promptSelector } from "./utils"
+
+test("context panel can be opened from the prompt", async ({ page, sdk, gotoSession }) => {
+ const title = `e2e smoke context ${Date.now()}`
+ const created = await sdk.session.create({ title }).then((r) => r.data)
+
+ if (!created?.id) throw new Error("Session create did not return an id")
+ const sessionID = created.id
+
+ try {
+ await gotoSession(sessionID)
+
+ const promptForm = page.locator("form").filter({ has: page.locator(promptSelector) }).first()
+ const contextButton = promptForm
+ .locator("button")
+ .filter({ has: promptForm.locator('[data-component="progress-circle"]').first() })
+ .first()
+
+ await expect(contextButton).toBeVisible()
+ await contextButton.click()
+
+ const tabs = page.locator('[data-component="tabs"][data-variant="normal"]')
+ await expect(tabs.getByRole("tab", { name: "Context" })).toBeVisible()
+ } finally {
+ await sdk.session.delete({ sessionID }).catch(() => undefined)
+ }
+})
diff --git a/packages/app/e2e/file-open.spec.ts b/packages/app/e2e/file-open.spec.ts
new file mode 100644
index 000000000..673caf9dc
--- /dev/null
+++ b/packages/app/e2e/file-open.spec.ts
@@ -0,0 +1,24 @@
+import { test, expect } from "./fixtures"
+import { modKey } from "./utils"
+
+test("can open a file tab from the search palette", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ await page.keyboard.press(`${modKey}+P`)
+
+ const dialog = page.getByRole("dialog")
+ await expect(dialog).toBeVisible()
+
+ const input = dialog.getByRole("textbox").first()
+ await input.fill("package.json")
+
+ const firstItem = dialog.locator('[data-slot="list-item"]').first()
+ await expect(firstItem).toBeVisible()
+ await firstItem.click()
+
+ await expect(dialog).toHaveCount(0)
+
+ const tabs = page.locator('[data-component="tabs"][data-variant="normal"]')
+ await expect(tabs).toBeVisible()
+ await expect(tabs.getByRole("tab").first()).toBeVisible()
+})
diff --git a/packages/app/e2e/sidebar.spec.ts b/packages/app/e2e/sidebar.spec.ts
new file mode 100644
index 000000000..964b0a56c
--- /dev/null
+++ b/packages/app/e2e/sidebar.spec.ts
@@ -0,0 +1,20 @@
+import { test, expect } from "./fixtures"
+import { modKey } from "./utils"
+
+test("sidebar can be collapsed and expanded", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const createButton = page.getByRole("button", { name: /New (session|workspace)/ }).first()
+ const opened = (await createButton.count()) > 0
+
+ if (!opened) {
+ await page.keyboard.press(`${modKey}+B`)
+ await expect(createButton).toBeVisible()
+ }
+
+ await page.keyboard.press(`${modKey}+B`)
+ await expect(createButton).toHaveCount(0)
+
+ await page.keyboard.press(`${modKey}+B`)
+ await expect(createButton).toBeVisible()
+})