MCPcopy Create free account
hub / github.com/anomalyco/opencode / createHarness

Function createHarness

packages/opencode/test/acp/event.test.ts:81–114  ·  view source on GitHub ↗
(messages: Record<string, SessionMessageResponse> = {})

Source from the content-addressed store, hash-verified

79}
80
81function createHarness(messages: Record<string, SessionMessageResponse> = {}) {
82 const updates: SessionUpdateParams[] = []
83 const calls = {
84 eventSubscribe: 0,
85 message: 0,
86 }
87 const events = createEventStream()
88 const sdk = {
89 global: {
90 event: (options?: { signal?: AbortSignal }) => {
91 calls.eventSubscribe++
92 return Promise.resolve({ stream: events.stream(options?.signal) })
93 },
94 },
95 session: {
96 message: (input: { messageID: string }) => {
97 calls.message++
98 return Promise.resolve({ data: messages[input.messageID] })
99 },
100 get: () => Promise.resolve({ data: { id: "ses_loaded" } }),
101 messages: () => Promise.resolve({ data: [] }),
102 },
103 } as unknown as OpencodeClient
104 const connection = {
105 sessionUpdate: (params: SessionUpdateParams) => {
106 updates.push(params)
107 return Promise.resolve()
108 },
109 } satisfies Pick<AgentSideConnection, "sessionUpdate">
110 const session = makeSessionService()
111 const subscription = new ACPEvent.Subscription({ sdk, connection, session })
112
113 return { calls, connection, events, sdk, session, subscription, updates }
114}
115
116function textDelta(sessionID: string, messageID: string, partID: string, delta: string): Event {
117 return {

Callers 1

event.test.tsFile · 0.70

Calls 4

streamMethod · 0.80
pushMethod · 0.80
createEventStreamFunction · 0.70
makeSessionServiceFunction · 0.70

Tested by

no test coverage detected