import { expect, test } from "@playwright/test" import { mockOpenCodeServer } from "../utils/mock-server" const draftID = "draft_legacy_new_session" const directory = "C:/OpenCode/LegacyNewSession" const server = `http://${process.env.PLAYWRIGHT_SERVER_HOST ?? "127.0.0.1"}:${process.env.PLAYWRIGHT_SERVER_PORT ?? "4096"}` test("keeps drafts in the tabs layout for profiles with an old layout preference", async ({ page }) => { await mockOpenCodeServer(page, { directory, project: { id: "proj_legacy_new_session", worktree: directory, vcs: "git", name: "legacy-new-session", time: { created: 1700000000000, updated: 1700000000000 }, sandboxes: [], }, provider: { all: [], connected: [], default: {} }, sessions: [], pageMessages: () => ({ items: [] }), }) await page.addInitScript( ({ directory, draftID, server }) => { localStorage.setItem("settings.v3", JSON.stringify({ general: { newLayoutDesigns: false } })) localStorage.setItem("app-version.v1", JSON.stringify({ version: "1.17.20" })) localStorage.setItem( "opencode.window.browser.dat:tabs", JSON.stringify([{ type: "draft", draftID, server, directory }]), ) }, { directory, draftID, server }, ) await page.goto(`/new-session?draftId=${draftID}`) await expect(page).toHaveURL(`/new-session?draftId=${draftID}`) await expect(page.locator("body")).toHaveAttribute("data-new-layout", "") await expect(page.getByRole("textbox", { name: "Prompt" })).toBeVisible() })