diff --git a/packages/app/e2e/actions.ts b/packages/app/e2e/actions.ts index 7056295910..fb9eb208bc 100644 --- a/packages/app/e2e/actions.ts +++ b/packages/app/e2e/actions.ts @@ -1,5 +1,5 @@ import { base64Decode, base64Encode } from "@opencode-ai/util/encode" -import { expect, type Locator, type Page, type Route } from "@playwright/test" +import { expect, type Locator, type Page } from "@playwright/test" import fs from "node:fs/promises" import os from "node:os" import path from "node:path" @@ -7,7 +7,6 @@ import { execSync } from "node:child_process" import { terminalAttr, type E2EWindow } from "../src/testing/terminal" import { createSdk, modKey, resolveDirectory, serverUrl } from "./utils" import { - dropdownMenuTriggerSelector, dropdownMenuContentSelector, projectSwitchSelector, projectMenuTriggerSelector, @@ -43,27 +42,6 @@ export async function defocus(page: Page) { .catch(() => undefined) } -export async function withNoReplyPrompt(page: Page, fn: () => Promise) { - const urls = ["**/session/*/prompt_async", "**/session/*/message"] - const route = async (input: Route) => { - const body = input.request().postDataJSON() - await input.continue({ - postData: JSON.stringify({ ...body, noReply: true }), - headers: { - ...input.request().headers(), - "content-type": "application/json", - }, - }) - } - - await Promise.all(urls.map((url) => page.route(url, route))) - try { - return await fn() - } finally { - await Promise.all(urls.map((url) => page.unroute(url, route))) - } -} - async function terminalID(term: Locator) { const id = await term.getAttribute(terminalAttr) if (id) return id diff --git a/packages/app/e2e/prompt/mock.ts b/packages/app/e2e/prompt/mock.ts index bd09af2665..c7eb54b526 100644 --- a/packages/app/e2e/prompt/mock.ts +++ b/packages/app/e2e/prompt/mock.ts @@ -1,21 +1,9 @@ -import { createSdk } from "../utils" - -export const openaiModel = { providerID: "openai", modelID: "gpt-5.3-chat-latest" } - type Hit = { body: Record } export function bodyText(hit: Hit) { return JSON.stringify(hit.body) } -export function titleMatch(hit: Hit) { - return bodyText(hit).includes("Generate a title for this conversation") -} - -export function promptMatch(token: string) { - return (hit: Hit) => bodyText(hit).includes(token) -} - /** * Match requests whose body contains the exact serialized tool input. * The seed prompts embed JSON.stringify(input) in the prompt text, which @@ -25,32 +13,3 @@ export function inputMatch(input: unknown) { const escaped = JSON.stringify(JSON.stringify(input)).slice(1, -1) return (hit: Hit) => bodyText(hit).includes(escaped) } - -export async function withMockOpenAI(input: { serverUrl: string; llmUrl: string; fn: () => Promise }) { - const sdk = createSdk(undefined, input.serverUrl) - const prev = await sdk.global.config.get().then((res) => res.data ?? {}) - - try { - await sdk.global.config.update({ - config: { - ...prev, - model: `${openaiModel.providerID}/${openaiModel.modelID}`, - enabled_providers: ["openai"], - provider: { - ...prev.provider, - openai: { - ...prev.provider?.openai, - options: { - ...prev.provider?.openai?.options, - apiKey: "test-key", - baseURL: input.llmUrl, - }, - }, - }, - }, - }) - return await input.fn() - } finally { - await sdk.global.config.update({ config: prev }) - } -} diff --git a/packages/app/e2e/selectors.ts b/packages/app/e2e/selectors.ts index 32e4ecd8a4..0a850c7440 100644 --- a/packages/app/e2e/selectors.ts +++ b/packages/app/e2e/selectors.ts @@ -4,13 +4,7 @@ export const terminalSelector = `${terminalPanelSelector} [data-component="termi export const sessionComposerDockSelector = '[data-component="session-prompt-dock"]' export const questionDockSelector = '[data-component="dock-prompt"][data-kind="question"]' export const permissionDockSelector = '[data-component="dock-prompt"][data-kind="permission"]' -export const permissionRejectSelector = `${permissionDockSelector} [data-slot="permission-footer-actions"] [data-component="button"]:nth-child(1)` -export const permissionAllowAlwaysSelector = `${permissionDockSelector} [data-slot="permission-footer-actions"] [data-component="button"]:nth-child(2)` -export const permissionAllowOnceSelector = `${permissionDockSelector} [data-slot="permission-footer-actions"] [data-component="button"]:nth-child(3)` -export const sessionTodoDockSelector = '[data-component="session-todo-dock"]' -export const sessionTodoToggleSelector = '[data-action="session-todo-toggle"]' export const sessionTodoToggleButtonSelector = '[data-action="session-todo-toggle-button"]' -export const sessionTodoListSelector = '[data-slot="session-todo-list"]' export const modelVariantCycleSelector = '[data-action="model-variant-cycle"]' export const promptAgentSelector = '[data-component="prompt-agent-control"]' @@ -40,9 +34,6 @@ export const projectMenuTriggerSelector = (slug: string) => export const projectCloseMenuSelector = (slug: string) => `[data-action="project-close-menu"][data-project="${slug}"]` -export const projectClearNotificationsSelector = (slug: string) => - `[data-action="project-clear-notifications"][data-project="${slug}"]` - export const projectWorkspacesToggleSelector = (slug: string) => `[data-action="project-workspaces-toggle"][data-project="${slug}"]` @@ -50,8 +41,6 @@ export const titlebarRightSelector = "#opencode-titlebar-right" export const popoverBodySelector = '[data-slot="popover-body"]' -export const dropdownMenuTriggerSelector = '[data-slot="dropdown-menu-trigger"]' - export const dropdownMenuContentSelector = '[data-component="dropdown-menu-content"]' export const inlineInputSelector = '[data-component="inline-input"]'