summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-02 14:17:28 -0400
committerGitHub <[email protected]>2026-04-02 18:17:28 +0000
commitc3ef69c8664ab84464d720f75eb9bf35289c1847 (patch)
treed7b1aa78355c39472804bdfbbd9db87722d0587b /packages/app/src
parent363891126c9b2a909db0e724eb6377bd3d12b38b (diff)
downloadopencode-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.ts3
-rw-r--r--packages/app/src/testing/prompt.ts27
-rw-r--r--packages/app/src/testing/terminal.ts1
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