import { expect, test } from "@playwright/test" import { base64Encode } from "@opencode-ai/core/util/encode" import { mockOpenCodeServer } from "../utils/mock-server" import { expectAppVisible } from "../utils/waits" const directory = "C:/OpenCode/PromptInputV2Editing" const projectID = "proj_prompt_input_v2_editing" const sessionID = "ses_prompt_input_v2_editing" test("preserves the draft when a populated command menu triggers a built-in", async ({ page }) => { await mockOpenCodeServer(page, { directory, project: { id: projectID, worktree: directory, vcs: "git", name: "prompt-input-v2-editing", time: { created: 1700000000000, updated: 1700000000000 }, sandboxes: [], }, provider: { all: [], connected: [], default: {} }, sessions: [ { id: sessionID, slug: "prompt-input-v2-editing", projectID, directory, title: "Prompt input V2 editing", version: "dev", time: { created: 1700000000000, updated: 1700000000000 }, }, ], pageMessages: () => ({ items: [] }), }) await page.addInitScript(() => { localStorage.setItem("settings.v3", JSON.stringify({ general: { newLayoutDesigns: true } })) }) await page.goto(`/${base64Encode(directory)}/session/${sessionID}`) const composer = page.locator('[data-component="prompt-input-v2"]') const input = composer.locator('[data-component="prompt-input"]') await expectAppVisible(composer) await input.fill("keep me") await composer.getByRole("button", { name: "Add images and files" }).click() await page.getByRole("menuitem", { name: "Commands" }).click() await page.locator('[data-suggestion-id="model.choose"]').click() await expect(input).toHaveText("keep me") })