summaryrefslogtreecommitdiffhomepage
path: root/packages/app/e2e/sidebar
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/e2e/sidebar')
-rw-r--r--packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts109
-rw-r--r--packages/app/e2e/sidebar/sidebar-session-links.spec.ts30
-rw-r--r--packages/app/e2e/sidebar/sidebar.spec.ts40
3 files changed, 0 insertions, 179 deletions
diff --git a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts b/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts
deleted file mode 100644
index 05a129a61..000000000
--- a/packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-import { test, expect } from "../fixtures"
-import {
- defocus,
- cleanupSession,
- cleanupTestProject,
- closeSidebar,
- createTestProject,
- hoverSessionItem,
- openSidebar,
- waitSession,
-} from "../actions"
-import { projectSwitchSelector } from "../selectors"
-import { dirSlug } from "../utils"
-
-test("collapsed sidebar popover stays open when archiving a session", async ({ page, slug, sdk, gotoSession }) => {
- const stamp = Date.now()
-
- const one = await sdk.session.create({ title: `e2e sidebar popover archive 1 ${stamp}` }).then((r) => r.data)
- const two = await sdk.session.create({ title: `e2e sidebar popover archive 2 ${stamp}` }).then((r) => r.data)
-
- if (!one?.id) throw new Error("Session create did not return an id")
- if (!two?.id) throw new Error("Session create did not return an id")
-
- try {
- 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(oneItem).toBeVisible()
- await expect(twoItem).toBeVisible()
-
- const item = await hoverSessionItem(page, one.id)
- await item
- .getByRole("button", { name: /archive/i })
- .first()
- .click()
-
- await expect(twoItem).toBeVisible()
- } finally {
- await cleanupSession({ sdk, sessionID: one.id })
- await cleanupSession({ sdk, sessionID: two.id })
- }
-})
-
-test("open sidebar project popover stays closed after clicking avatar", async ({ page, project }) => {
- await page.setViewportSize({ width: 1400, height: 800 })
-
- const other = await createTestProject()
- const slug = dirSlug(other)
-
- try {
- await project.open({ extra: [other] })
- await openSidebar(page)
-
- const projectButton = page.locator(projectSwitchSelector(slug)).first()
- const card = page.locator('[data-component="hover-card-content"]')
-
- await expect(projectButton).toBeVisible()
- await projectButton.hover()
- await expect(card.getByText(/recent sessions/i)).toBeVisible()
-
- await projectButton.click()
- await expect(card).toHaveCount(0)
-
- await waitSession(page, { directory: other })
- await expect(card).toHaveCount(0)
- } finally {
- await cleanupTestProject(other)
- }
-})
-
-test("open sidebar project switch activates on first tabbed enter", async ({ page, project }) => {
- await page.setViewportSize({ width: 1400, height: 800 })
-
- const other = await createTestProject()
- const slug = dirSlug(other)
-
- try {
- await project.open({ extra: [other] })
- await openSidebar(page)
- await defocus(page)
-
- const projectButton = page.locator(projectSwitchSelector(slug)).first()
-
- await expect(projectButton).toBeVisible()
-
- let hit = false
- for (let i = 0; i < 20; i++) {
- hit = await projectButton.evaluate((el) => {
- return el.matches(":focus") || !!el.parentElement?.matches(":focus")
- })
- if (hit) break
- await page.keyboard.press("Tab")
- }
-
- expect(hit).toBe(true)
-
- await page.keyboard.press("Enter")
- await waitSession(page, { directory: other })
- } finally {
- await cleanupTestProject(other)
- }
-})
diff --git a/packages/app/e2e/sidebar/sidebar-session-links.spec.ts b/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
deleted file mode 100644
index 22f98e94c..000000000
--- a/packages/app/e2e/sidebar/sidebar-session-links.spec.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { test, expect } from "../fixtures"
-import { cleanupSession, openSidebar, withSession } from "../actions"
-import { promptSelector } from "../selectors"
-
-test("sidebar session links navigate to the selected session", async ({ page, slug, sdk, gotoSession }) => {
- const stamp = Date.now()
-
- const one = await sdk.session.create({ title: `e2e sidebar nav 1 ${stamp}` }).then((r) => r.data)
- const two = await sdk.session.create({ title: `e2e sidebar nav 2 ${stamp}` }).then((r) => r.data)
-
- if (!one?.id) throw new Error("Session create did not return an id")
- if (!two?.id) throw new Error("Session create did not return an id")
-
- try {
- await gotoSession(one.id)
-
- await openSidebar(page)
-
- const target = page.locator(`[data-session-id="${two.id}"] a`).first()
- await expect(target).toBeVisible()
- await target.click()
-
- await expect(page).toHaveURL(new RegExp(`/${slug}/session/${two.id}(?:\\?|#|$)`))
- await expect(page.locator(promptSelector)).toBeVisible()
- await expect(page.locator(`[data-session-id="${two.id}"] a`).first()).toHaveClass(/\bactive\b/)
- } finally {
- await cleanupSession({ sdk, sessionID: one.id })
- await cleanupSession({ sdk, sessionID: two.id })
- }
-})
diff --git a/packages/app/e2e/sidebar/sidebar.spec.ts b/packages/app/e2e/sidebar/sidebar.spec.ts
deleted file mode 100644
index c6bf3fa9a..000000000
--- a/packages/app/e2e/sidebar/sidebar.spec.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { test, expect } from "../fixtures"
-import { openSidebar, toggleSidebar, withSession } from "../actions"
-
-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(button).toHaveAttribute("aria-expanded", "false")
-
- await toggleSidebar(page)
- await expect(button).toHaveAttribute("aria-expanded", "true")
-})
-
-test("sidebar collapsed state persists across navigation and reload", async ({ page, sdk, gotoSession }) => {
- await withSession(sdk, "sidebar persist session 1", async (session1) => {
- await withSession(sdk, "sidebar persist session 2", async (session2) => {
- await gotoSession(session1.id)
-
- await openSidebar(page)
- const button = page.getByRole("button", { name: /toggle sidebar/i }).first()
- await toggleSidebar(page)
- await expect(button).toHaveAttribute("aria-expanded", "false")
-
- await gotoSession(session2.id)
- await expect(button).toHaveAttribute("aria-expanded", "false")
-
- await page.reload()
- await expect(button).toHaveAttribute("aria-expanded", "false")
-
- const opened = await page.evaluate(
- () => JSON.parse(localStorage.getItem("opencode.global.dat:layout") ?? "{}").sidebar?.opened,
- )
- await expect(opened).toBe(false)
- })
- })
-})