summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/app/e2e/file-viewer.spec.ts28
-rw-r--r--specs/08-app-e2e-smoke-suite.md7
2 files changed, 32 insertions, 3 deletions
diff --git a/packages/app/e2e/file-viewer.spec.ts b/packages/app/e2e/file-viewer.spec.ts
new file mode 100644
index 000000000..a9fee3c5d
--- /dev/null
+++ b/packages/app/e2e/file-viewer.spec.ts
@@ -0,0 +1,28 @@
+import { test, expect } from "./fixtures"
+import { modKey } from "./utils"
+
+test("smoke file viewer renders real file content", 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("packages/app/package.json")
+
+ const fileItem = dialog.locator('[data-slot="list-item"][data-key="file:packages/app/package.json"]')
+ await expect(fileItem).toBeVisible()
+ await fileItem.click()
+
+ await expect(dialog).toHaveCount(0)
+
+ const tab = page.getByRole("tab", { name: "package.json" })
+ await expect(tab).toBeVisible()
+ await tab.click()
+
+ const code = page.locator('[data-component="code"]').first()
+ await expect(code).toBeVisible()
+ await expect(code.getByText("@opencode-ai/app")).toBeVisible()
+})
diff --git a/specs/08-app-e2e-smoke-suite.md b/specs/08-app-e2e-smoke-suite.md
index 1a7a7a7dc..60b2f964a 100644
--- a/specs/08-app-e2e-smoke-suite.md
+++ b/specs/08-app-e2e-smoke-suite.md
@@ -25,7 +25,7 @@ Add 6 smoke tests to `packages/app/e2e/`:
- [x] 2. Prompt slash command path: `/open` opens file picker (`packages/app/e2e/prompt-slash-open.spec.ts`)
- [x] 3. Prompt @mention inserts a file pill token (`packages/app/e2e/prompt-mention.spec.ts`)
- [x] 4. Model selection UI works end-to-end (`packages/app/e2e/model-picker.spec.ts`)
-- [ ] 5. File viewer renders real file content
+- [x] 5. File viewer renders real file content (`packages/app/e2e/file-viewer.spec.ts`)
- [ ] 8. Terminal init + create new terminal
---
@@ -183,9 +183,10 @@ Steps:
2. Open file picker (either `mod+p` or `/open`).
3. Search for `packages/app/package.json`.
4. Click the matching file result.
-5. Assert the code viewer contains a known substring:
+5. Ensure the new file tab is active (click the `package.json` tab if needed so the viewer mounts).
+6. Assert the code viewer contains a known substring:
- `"name": "@opencode-ai/app"`.
-6. Optionally assert the file tab is active and visible.
+7. Optionally assert the file tab is active and visible.
Acceptance criteria: