diff options
| author | Kit Langton <[email protected]> | 2026-04-02 14:17:28 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-02 18:17:28 +0000 |
| commit | c3ef69c8664ab84464d720f75eb9bf35289c1847 (patch) | |
| tree | d7b1aa78355c39472804bdfbbd9db87722d0587b /packages/app/src | |
| parent | 363891126c9b2a909db0e724eb6377bd3d12b38b (diff) | |
| download | opencode-c3ef69c8664ab84464d720f75eb9bf35289c1847.tar.gz opencode-c3ef69c8664ab84464d720f75eb9bf35289c1847.zip | |
test(app): add a golden path for mocked e2e prompts (#20593)
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/components/prompt-input/submit.ts | 3 | ||||
| -rw-r--r-- | packages/app/src/testing/prompt.ts | 27 | ||||
| -rw-r--r-- | packages/app/src/testing/terminal.ts | 1 |
3 files changed, 31 insertions, 0 deletions
diff --git a/packages/app/src/components/prompt-input/submit.ts b/packages/app/src/components/prompt-input/submit.ts index ba299fe36..06b6c1e35 100644 --- a/packages/app/src/components/prompt-input/submit.ts +++ b/packages/app/src/components/prompt-input/submit.ts @@ -13,6 +13,7 @@ import { usePermission } from "@/context/permission" import { type ContextItem, type ImageAttachmentPart, type Prompt, usePrompt } from "@/context/prompt" import { useSDK } from "@/context/sdk" import { useSync } from "@/context/sync" +import { promptProbe } from "@/testing/prompt" import { Identifier } from "@/utils/id" import { Worktree as WorktreeState } from "@/utils/worktree" import { buildRequestParts } from "./build-request-parts" @@ -307,6 +308,7 @@ export function createPromptSubmit(input: PromptSubmitInput) { input.addToHistory(currentPrompt, mode) input.resetHistoryNavigation() + promptProbe.start() const projectDirectory = sdk.directory const isNewSession = !params.id @@ -426,6 +428,7 @@ export function createPromptSubmit(input: PromptSubmitInput) { return } + promptProbe.submit({ sessionID: session.id, directory: sessionDirectory }) input.onSubmit?.() if (mode === "shell") { diff --git a/packages/app/src/testing/prompt.ts b/packages/app/src/testing/prompt.ts index e11462f30..5102ed825 100644 --- a/packages/app/src/testing/prompt.ts +++ b/packages/app/src/testing/prompt.ts @@ -10,6 +10,13 @@ export type PromptProbeState = { 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 @@ -53,4 +60,24 @@ export const promptProbe = { 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/terminal.ts b/packages/app/src/testing/terminal.ts index 2bca39b31..db8001ddf 100644 --- a/packages/app/src/testing/terminal.ts +++ b/packages/app/src/testing/terminal.ts @@ -23,6 +23,7 @@ export type E2EWindow = Window & { prompt?: { enabled?: boolean current?: import("./prompt").PromptProbeState + sent?: import("./prompt").PromptSendState } terminal?: { enabled?: boolean |
