summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e/status
diff options
context:
space:
mode:
authorFilip <[email protected]>2026-01-31 21:01:21 +0100
committerGitHub <[email protected]>2026-01-31 14:01:21 -0600
commit33252a65b408ddec45bcd063c535c2170ce413c6 (patch)
tree46c340bf6f5b852ba49b0add37ef09b66af5abfe /packages/app/e2e/status
parente70d984320571597f89421d85c2f74009951027c (diff)
downloadopencode-33252a65b408ddec45bcd063c535c2170ce413c6.tar.gz
opencode-33252a65b408ddec45bcd063c535c2170ce413c6.zip
test(app): general settings, shortcuts, providers and status popover (#11517)
Diffstat (limited to 'packages/app/e2e/status')
-rw-r--r--packages/app/e2e/status/status-popover.spec.ts94
1 files changed, 94 insertions, 0 deletions
diff --git a/packages/app/e2e/status/status-popover.spec.ts b/packages/app/e2e/status/status-popover.spec.ts
new file mode 100644
index 000000000..4334cecb4
--- /dev/null
+++ b/packages/app/e2e/status/status-popover.spec.ts
@@ -0,0 +1,94 @@
+import { test, expect } from "../fixtures"
+import { openStatusPopover, defocus } from "../actions"
+
+test("status popover opens and shows tabs", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+
+ await expect(popoverBody.getByRole("tab", { name: /servers/i })).toBeVisible()
+ await expect(popoverBody.getByRole("tab", { name: /mcp/i })).toBeVisible()
+ await expect(popoverBody.getByRole("tab", { name: /lsp/i })).toBeVisible()
+ await expect(popoverBody.getByRole("tab", { name: /plugins/i })).toBeVisible()
+
+ await page.keyboard.press("Escape")
+ await expect(popoverBody).toHaveCount(0)
+})
+
+test("status popover servers tab shows current server", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+
+ const serversTab = popoverBody.getByRole("tab", { name: /servers/i })
+ await expect(serversTab).toHaveAttribute("aria-selected", "true")
+
+ const serverList = popoverBody.locator('[role="tabpanel"]').first()
+ await expect(serverList.locator("button").first()).toBeVisible()
+})
+
+test("status popover can switch to mcp tab", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+
+ const mcpTab = popoverBody.getByRole("tab", { name: /mcp/i })
+ await mcpTab.click()
+
+ const ariaSelected = await mcpTab.getAttribute("aria-selected")
+ expect(ariaSelected).toBe("true")
+
+ const mcpContent = popoverBody.locator('[role="tabpanel"]:visible').first()
+ await expect(mcpContent).toBeVisible()
+})
+
+test("status popover can switch to lsp tab", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+
+ const lspTab = popoverBody.getByRole("tab", { name: /lsp/i })
+ await lspTab.click()
+
+ const ariaSelected = await lspTab.getAttribute("aria-selected")
+ expect(ariaSelected).toBe("true")
+
+ const lspContent = popoverBody.locator('[role="tabpanel"]:visible').first()
+ await expect(lspContent).toBeVisible()
+})
+
+test("status popover can switch to plugins tab", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+
+ const pluginsTab = popoverBody.getByRole("tab", { name: /plugins/i })
+ await pluginsTab.click()
+
+ const ariaSelected = await pluginsTab.getAttribute("aria-selected")
+ expect(ariaSelected).toBe("true")
+
+ const pluginsContent = popoverBody.locator('[role="tabpanel"]:visible').first()
+ await expect(pluginsContent).toBeVisible()
+})
+
+test("status popover closes on escape", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+ await expect(popoverBody).toBeVisible()
+
+ await page.keyboard.press("Escape")
+ await expect(popoverBody).toHaveCount(0)
+})
+
+test("status popover closes when clicking outside", async ({ page, gotoSession }) => {
+ await gotoSession()
+
+ const { popoverBody } = await openStatusPopover(page)
+ await expect(popoverBody).toBeVisible()
+
+ await defocus(page)
+
+ await expect(popoverBody).toHaveCount(0)
+})