sidebar.spec.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { test, expect } from "../fixtures"
  2. import { openSidebar, toggleSidebar, withSession } from "../actions"
  3. test("sidebar can be collapsed and expanded", async ({ page, gotoSession }) => {
  4. await gotoSession()
  5. await openSidebar(page)
  6. await toggleSidebar(page)
  7. await expect(page.locator("main")).toHaveClass(/xl:border-l/)
  8. await toggleSidebar(page)
  9. await expect(page.locator("main")).not.toHaveClass(/xl:border-l/)
  10. })
  11. test("sidebar collapsed state persists across navigation and reload", async ({ page, sdk, gotoSession }) => {
  12. await withSession(sdk, "sidebar persist session 1", async (session1) => {
  13. await withSession(sdk, "sidebar persist session 2", async (session2) => {
  14. await gotoSession(session1.id)
  15. await openSidebar(page)
  16. await toggleSidebar(page)
  17. await expect(page.locator("main")).toHaveClass(/xl:border-l/)
  18. await gotoSession(session2.id)
  19. await expect(page.locator("main")).toHaveClass(/xl:border-l/)
  20. await page.reload()
  21. await expect(page.locator("main")).toHaveClass(/xl:border-l/)
  22. const opened = await page.evaluate(
  23. () => JSON.parse(localStorage.getItem("opencode.global.dat:layout") ?? "{}").sidebar?.opened,
  24. )
  25. await expect(opened).toBe(false)
  26. })
  27. })
  28. })