diff options
Diffstat (limited to 'packages/app/e2e/sidebar')
| -rw-r--r-- | packages/app/e2e/sidebar/sidebar-popover-actions.spec.ts | 109 | ||||
| -rw-r--r-- | packages/app/e2e/sidebar/sidebar-session-links.spec.ts | 30 | ||||
| -rw-r--r-- | packages/app/e2e/sidebar/sidebar.spec.ts | 40 |
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) - }) - }) -}) |
