38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
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)
|
|
|
|
await toggleSidebar(page)
|
|
await expect(page.locator("main")).toHaveClass(/xl:border-l/)
|
|
|
|
await toggleSidebar(page)
|
|
await expect(page.locator("main")).not.toHaveClass(/xl:border-l/)
|
|
})
|
|
|
|
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)
|
|
await toggleSidebar(page)
|
|
await expect(page.locator("main")).toHaveClass(/xl:border-l/)
|
|
|
|
await gotoSession(session2.id)
|
|
await expect(page.locator("main")).toHaveClass(/xl:border-l/)
|
|
|
|
await page.reload()
|
|
await expect(page.locator("main")).toHaveClass(/xl:border-l/)
|
|
|
|
const opened = await page.evaluate(
|
|
() => JSON.parse(localStorage.getItem("opencode.global.dat:layout") ?? "{}").sidebar?.opened,
|
|
)
|
|
await expect(opened).toBe(false)
|
|
})
|
|
})
|
|
})
|