diff options
| author | Dax Raad <[email protected]> | 2026-04-14 23:10:07 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2026-04-14 23:10:25 -0400 |
| commit | 627159acac04409d7697a6739e2c572c2a010943 (patch) | |
| tree | 5f87465ea69f41aff0cd96ae5411fe438da480b3 /packages/app/src/testing | |
| parent | f44aa02e2677b2b89a1a9f517c0ff8990383deaa (diff) | |
| download | opencode-627159acac04409d7697a6739e2c572c2a010943.tar.gz opencode-627159acac04409d7697a6739e2c572c2a010943.zip | |
delete all e2e tests (#22501)
Cherry-picked from ea463e604cdd2a3e83e1c286e39b789455f0d413
Diffstat (limited to 'packages/app/src/testing')
| -rw-r--r-- | packages/app/src/testing/model-selection.ts | 109 | ||||
| -rw-r--r-- | packages/app/src/testing/prompt.ts | 83 | ||||
| -rw-r--r-- | packages/app/src/testing/session-composer.ts | 84 | ||||
| -rw-r--r-- | packages/app/src/testing/terminal.ts | 119 |
4 files changed, 0 insertions, 395 deletions
diff --git a/packages/app/src/testing/model-selection.ts b/packages/app/src/testing/model-selection.ts deleted file mode 100644 index d2770fe28..000000000 --- a/packages/app/src/testing/model-selection.ts +++ /dev/null @@ -1,109 +0,0 @@ -type ModelKey = { - providerID: string - modelID: string -} - -type ModelItem = ModelKey & { - name: string -} - -type AgentItem = { - name: string -} - -type State = { - agent?: string - model?: ModelKey | null - variant?: string | null -} - -export type ModelProbeState = { - dir?: string - sessionID?: string - last?: { - type: "agent" | "model" | "variant" - agent?: string - model?: ModelKey | null - variant?: string | null - } - agent?: string - model?: (ModelKey & { name?: string }) | undefined - variant?: string | null - selected?: string | null - configured?: string - pick?: State - base?: State - current?: string - variants?: string[] - models?: ModelItem[] - agents?: AgentItem[] -} - -export type ModelWindow = Window & { - __opencode_e2e?: { - model?: { - enabled?: boolean - current?: ModelProbeState - controls?: { - setAgent?: (name: string | undefined) => void - setModel?: (value: ModelKey | undefined) => void - setVariant?: (value: string | undefined) => void - } - } - } -} - -const clone = (state?: State) => { - if (!state) return undefined - return { - ...state, - model: state.model ? { ...state.model } : state.model, - } -} - -let active: symbol | undefined - -export const modelEnabled = () => { - if (typeof window === "undefined") return false - return (window as ModelWindow).__opencode_e2e?.model?.enabled === true -} - -const root = () => { - if (!modelEnabled()) return - return (window as ModelWindow).__opencode_e2e?.model -} - -export const modelProbe = { - bind(id: symbol, input: NonNullable<NonNullable<ModelWindow["__opencode_e2e"]>["model"]>["controls"]) { - const state = root() - if (!state) return - active = id - state.controls = input - }, - set(id: symbol, input: ModelProbeState) { - const state = root() - if (!state || active !== id) return - state.current = { - ...input, - model: input.model ? { ...input.model } : undefined, - last: input.last - ? { - ...input.last, - model: input.last.model ? { ...input.last.model } : input.last.model, - } - : undefined, - pick: clone(input.pick), - base: clone(input.base), - variants: input.variants?.slice(), - models: input.models?.map((item) => ({ ...item })), - agents: input.agents?.map((item) => ({ ...item })), - } - }, - clear(id: symbol) { - const state = root() - if (!state || active !== id) return - active = undefined - state.current = undefined - state.controls = undefined - }, -} diff --git a/packages/app/src/testing/prompt.ts b/packages/app/src/testing/prompt.ts deleted file mode 100644 index 5102ed825..000000000 --- a/packages/app/src/testing/prompt.ts +++ /dev/null @@ -1,83 +0,0 @@ -import type { E2EWindow } from "./terminal" - -export type PromptProbeState = { - popover: "at" | "slash" | null - slash: { - active: string | null - ids: string[] - } - selected: string | null - selects: number -} - -export type PromptSendState = { - started: number - count: number - sessionID?: string - directory?: string -} - -export const promptEnabled = () => { - if (typeof window === "undefined") return false - return (window as E2EWindow).__opencode_e2e?.prompt?.enabled === true -} - -const root = () => { - if (!promptEnabled()) return - return (window as E2EWindow).__opencode_e2e?.prompt -} - -export const promptProbe = { - set(input: Omit<PromptProbeState, "selected" | "selects">) { - const state = root() - if (!state) return - state.current = { - popover: input.popover, - slash: { - active: input.slash.active, - ids: [...input.slash.ids], - }, - selected: state.current?.selected ?? null, - selects: state.current?.selects ?? 0, - } - }, - select(id: string) { - const state = root() - if (!state) return - const prev = state.current - state.current = { - popover: prev?.popover ?? null, - slash: { - active: prev?.slash.active ?? null, - ids: [...(prev?.slash.ids ?? [])], - }, - selected: id, - selects: (prev?.selects ?? 0) + 1, - } - }, - clear() { - const state = root() - if (!state) return - state.current = undefined - }, - start() { - const state = root() - if (!state) return - state.sent = { - started: (state.sent?.started ?? 0) + 1, - count: state.sent?.count ?? 0, - sessionID: state.sent?.sessionID, - directory: state.sent?.directory, - } - }, - submit(input: { sessionID: string; directory: string }) { - const state = root() - if (!state) return - state.sent = { - started: state.sent?.started ?? 0, - count: (state.sent?.count ?? 0) + 1, - sessionID: input.sessionID, - directory: input.directory, - } - }, -} diff --git a/packages/app/src/testing/session-composer.ts b/packages/app/src/testing/session-composer.ts deleted file mode 100644 index 01c809e4c..000000000 --- a/packages/app/src/testing/session-composer.ts +++ /dev/null @@ -1,84 +0,0 @@ -import type { Todo } from "@opencode-ai/sdk/v2" - -export const composerEvent = "opencode:e2e:composer" - -export type ComposerDriverState = { - live?: boolean - todos?: Array<Pick<Todo, "content" | "status" | "priority">> -} - -export type ComposerProbeState = { - mounted: boolean - collapsed: boolean - hidden: boolean - count: number - states: Todo["status"][] -} - -type ComposerState = { - driver?: ComposerDriverState - probe?: ComposerProbeState -} - -export type ComposerWindow = Window & { - __opencode_e2e?: { - composer?: { - enabled?: boolean - sessions?: Record<string, ComposerState> - } - } -} - -const clone = (driver: ComposerDriverState) => ({ - live: driver.live, - todos: driver.todos?.map((todo) => ({ ...todo })), -}) - -export const composerEnabled = () => { - if (typeof window === "undefined") return false - return (window as ComposerWindow).__opencode_e2e?.composer?.enabled === true -} - -const root = () => { - if (!composerEnabled()) return - const state = (window as ComposerWindow).__opencode_e2e?.composer - if (!state) return - state.sessions ??= {} - return state.sessions -} - -export const composerDriver = (sessionID?: string) => { - if (!sessionID) return - const state = root()?.[sessionID]?.driver - if (!state) return - return clone(state) -} - -export const composerProbe = (sessionID?: string) => { - const set = (next: ComposerProbeState) => { - if (!sessionID) return - const sessions = root() - if (!sessions) return - const prev = sessions[sessionID] ?? {} - sessions[sessionID] = { - ...prev, - probe: { - ...next, - states: [...next.states], - }, - } - } - - return { - set, - drop() { - set({ - mounted: false, - collapsed: false, - hidden: true, - count: 0, - states: [], - }) - }, - } -} diff --git a/packages/app/src/testing/terminal.ts b/packages/app/src/testing/terminal.ts deleted file mode 100644 index db8001ddf..000000000 --- a/packages/app/src/testing/terminal.ts +++ /dev/null @@ -1,119 +0,0 @@ -import type { ModelProbeState } from "./model-selection" - -export const terminalAttr = "data-pty-id" - -export type TerminalProbeState = { - connected: boolean - connects: number - rendered: string - settled: number - focusing: number -} - -type TerminalProbeControl = { - disconnect?: VoidFunction -} - -export type E2EWindow = Window & { - __opencode_e2e?: { - model?: { - enabled?: boolean - current?: ModelProbeState - } - prompt?: { - enabled?: boolean - current?: import("./prompt").PromptProbeState - sent?: import("./prompt").PromptSendState - } - terminal?: { - enabled?: boolean - terminals?: Record<string, TerminalProbeState> - controls?: Record<string, TerminalProbeControl> - } - } -} - -const seed = (): TerminalProbeState => ({ - connected: false, - connects: 0, - rendered: "", - settled: 0, - focusing: 0, -}) - -const root = () => { - if (typeof window === "undefined") return - const state = (window as E2EWindow).__opencode_e2e?.terminal - if (!state?.enabled) return - return state -} - -const terms = () => { - const state = root() - if (!state) return - state.terminals ??= {} - return state.terminals -} - -const controls = () => { - const state = root() - if (!state) return - state.controls ??= {} - return state.controls -} - -export const terminalProbe = (id: string) => { - const set = (next: Partial<TerminalProbeState>) => { - const state = terms() - if (!state) return - state[id] = { ...(state[id] ?? seed()), ...next } - } - - return { - init() { - set(seed()) - }, - connect() { - const state = terms() - if (!state) return - const prev = state[id] ?? seed() - state[id] = { - ...prev, - connected: true, - connects: prev.connects + 1, - } - }, - render(data: string) { - const state = terms() - if (!state) return - const prev = state[id] ?? seed() - state[id] = { ...prev, rendered: prev.rendered + data } - }, - settle() { - const state = terms() - if (!state) return - const prev = state[id] ?? seed() - state[id] = { ...prev, settled: prev.settled + 1 } - }, - focus(count: number) { - set({ focusing: Math.max(0, count) }) - }, - step() { - const state = terms() - if (!state) return - const prev = state[id] ?? seed() - state[id] = { ...prev, focusing: Math.max(0, prev.focusing - 1) } - }, - control(next: Partial<TerminalProbeControl>) { - const state = controls() - if (!state) return - state[id] = { ...(state[id] ?? {}), ...next } - }, - drop() { - const state = terms() - if (state) delete state[id] - const control = controls() - if (control) delete control[id] - }, - } -} |
