summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e/sidebar
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2026-03-06 22:33:34 +0000
committerGitHub <[email protected]>2026-03-06 16:33:34 -0600
commitb0bc3d87f59fb28340fc4c047131919031890898 (patch)
tree35c56cbdb069fb720de642d7a4cc0bd6332e3747 /packages/app/e2e/sidebar
parenta2634337b84643c08df5337243e8f82399c85615 (diff)
downloadopencode-b0bc3d87f59fb28340fc4c047131919031890898.tar.gz
opencode-b0bc3d87f59fb28340fc4c047131919031890898.zip
feat(app): sidebar reveal animation, hover peek overlay, and weaker dividers (#16374)
Co-authored-by: Adam <[email protected]>
Diffstat (limited to 'packages/app/e2e/sidebar')
-rw-r--r--packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts11
-rw-r--r--packages/app/e2e/sidebar/sidebar-session-links.spec.ts1
-rw-r--r--packages/app/e2e/sidebar/sidebar.spec.ts13
3 files changed, 15 insertions, 10 deletions
diff --git a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts
index e37f94f3a..09701f3f9 100644
--- a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts
+++ b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts
@@ -1,6 +1,6 @@
import { test, expect } from "../fixtures"
import { closeSidebar, hoverSessionItem } from "../actions"
-import { projectSwitchSelector, sessionItemSelector } from "../selectors"
+import { projectSwitchSelector } from "../selectors"
test("collapsed sidebar popover stays open when archiving a session", async ({ page, slug, sdk, gotoSession }) => {
const stamp = Date.now()
@@ -15,12 +15,15 @@ test("collapsed sidebar popover stays open when archiving a session", async ({ p
await gotoSession(one.id)
await closeSidebar(page)
+ const oneItem = page.locator(`[data-session-id="${one.id}"]`).last()
+ const twoItem = page.locator(`[data-session-id="${two.id}"]`).last()
+
const project = page.locator(projectSwitchSelector(slug)).first()
await expect(project).toBeVisible()
await project.hover()
- await expect(page.locator(sessionItemSelector(one.id)).first()).toBeVisible()
- await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible()
+ await expect(oneItem).toBeVisible()
+ await expect(twoItem).toBeVisible()
const item = await hoverSessionItem(page, one.id)
await item
@@ -28,7 +31,7 @@ test("collapsed sidebar popover stays open when archiving a session", async ({ p
.first()
.click()
- await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible()
+ await expect(twoItem).toBeVisible()
} finally {
await sdk.session.delete({ sessionID: one.id }).catch(() => undefined)
await sdk.session.delete({ sessionID: two.id }).catch(() => undefined)
diff --git a/packages/app/e2e/sidebar/sidebar-session-links.spec.ts b/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
index cda2278a9..052b7cb84 100644
--- a/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
+++ b/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
@@ -18,7 +18,6 @@ test("sidebar session links navigate to the selected session", async ({ page, sl
const target = page.locator(`[data-session-id="${two.id}"] a`).first()
await expect(target).toBeVisible()
- await target.scrollIntoViewIfNeeded()
await target.click()
await expect(page).toHaveURL(new RegExp(`/${slug}/session/${two.id}(?:\\?|#|$)`))
diff --git a/packages/app/e2e/sidebar/sidebar.spec.ts b/packages/app/e2e/sidebar/sidebar.spec.ts
index 5c78c2220..c6bf3fa9a 100644
--- a/packages/app/e2e/sidebar/sidebar.spec.ts
+++ b/packages/app/e2e/sidebar/sidebar.spec.ts
@@ -5,12 +5,14 @@ test("sidebar can be collapsed and expanded", async ({ page, gotoSession }) => {
await gotoSession()
await openSidebar(page)
+ const button = page.getByRole("button", { name: /toggle sidebar/i }).first()
+ await expect(button).toHaveAttribute("aria-expanded", "true")
await toggleSidebar(page)
- await expect(page.locator("main")).toHaveClass(/xl:border-l/)
+ await expect(button).toHaveAttribute("aria-expanded", "false")
await toggleSidebar(page)
- await expect(page.locator("main")).not.toHaveClass(/xl:border-l/)
+ await expect(button).toHaveAttribute("aria-expanded", "true")
})
test("sidebar collapsed state persists across navigation and reload", async ({ page, sdk, gotoSession }) => {
@@ -19,14 +21,15 @@ test("sidebar collapsed state persists across navigation and reload", async ({ p
await gotoSession(session1.id)
await openSidebar(page)
+ const button = page.getByRole("button", { name: /toggle sidebar/i }).first()
await toggleSidebar(page)
- await expect(page.locator("main")).toHaveClass(/xl:border-l/)
+ await expect(button).toHaveAttribute("aria-expanded", "false")
await gotoSession(session2.id)
- await expect(page.locator("main")).toHaveClass(/xl:border-l/)
+ await expect(button).toHaveAttribute("aria-expanded", "false")
await page.reload()
- await expect(page.locator("main")).toHaveClass(/xl:border-l/)
+ await expect(button).toHaveAttribute("aria-expanded", "false")
const opened = await page.evaluate(
() => JSON.parse(localStorage.getItem("opencode.global.dat:layout") ?? "{}").sidebar?.opened,