mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-23 10:45:33 -04:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { writeSessionOutput } from "../../src/mini/stream"
|
|
import { createFooterApiFixture } from "./fixture/footer-api"
|
|
|
|
describe("run stream bridge", () => {
|
|
test("defaults status patches to running phase", () => {
|
|
const out = createFooterApiFixture()
|
|
|
|
writeSessionOutput(
|
|
{
|
|
footer: out.api,
|
|
},
|
|
{
|
|
commits: [],
|
|
updates: [{ type: "stream.patch", patch: { status: "assistant responding" } }],
|
|
},
|
|
)
|
|
|
|
expect(out.events).toEqual([
|
|
{
|
|
type: "stream.patch",
|
|
patch: {
|
|
phase: "running",
|
|
status: "assistant responding",
|
|
},
|
|
},
|
|
])
|
|
})
|
|
|
|
test("delivers commits before ordered footer updates", () => {
|
|
const out = createFooterApiFixture()
|
|
|
|
writeSessionOutput(
|
|
{ footer: out.api },
|
|
{
|
|
commits: [{ kind: "assistant", source: "assistant", text: "answer", phase: "progress" }],
|
|
updates: [
|
|
{ type: "stream.patch", patch: { phase: "idle", status: "" } },
|
|
{ type: "stream.subagent", state: { tabs: [], details: {}, permissions: [], forms: [] } },
|
|
{ type: "stream.view", view: { type: "prompt" } },
|
|
],
|
|
},
|
|
)
|
|
|
|
expect(out.calls.map((call) => (call.type === "commit" ? "commit" : call.value.type))).toEqual([
|
|
"commit",
|
|
"stream.patch",
|
|
"stream.subagent",
|
|
"stream.view",
|
|
])
|
|
})
|
|
|
|
})
|