| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { expect, test } from "@playwright/test"
- import { fixture, pageMessages } from "../smoke/session-timeline.fixture"
- import { mockOpenCodeServer } from "../utils/mock-server"
- test("shows loaded sessions before the directory path request resolves", async ({ page }) => {
- await mockOpenCodeServer(page, {
- sessions: fixture.sessions,
- provider: fixture.provider,
- directory: fixture.directory,
- project: fixture.project,
- pageMessages,
- })
- let releasePath!: () => void
- const pathBlocked = new Promise<void>((resolve) => {
- releasePath = resolve
- })
- await page.route("**/path?*", async (route) => {
- if (!new URL(route.request().url()).searchParams.has("directory")) return route.fallback()
- await pathBlocked
- return route.fallback()
- })
- await page.addInitScript((directory) => {
- localStorage.setItem(
- "opencode.global.dat:server",
- JSON.stringify({
- projects: { local: [{ worktree: directory, expanded: true }] },
- lastProject: { local: directory },
- }),
- )
- }, fixture.directory)
- await page.goto("/")
- try {
- await expect(page.getByText(fixture.expected.sourceTitle).first()).toBeVisible({ timeout: 5_000 })
- } finally {
- releasePath()
- }
- })
|