/** @jsxImportSource @opentui/solid */ import { expect, test } from "bun:test" import { RGBA } from "@opentui/core" import { testRender } from "@opentui/solid" import type { Context } from "@opencode-ai/plugin/tui/context" import { PromptFooter } from "../../src/feature-plugins/prompt/footer" test("prompt footer separates simultaneous subagent, shell, and usage status", async () => { const color = RGBA.fromInts(200, 200, 200) const context = { location: { directory: "/workspace" }, theme: { text: { default: color, subdued: color } }, keymap: { shortcuts: (id: string) => (id === "session.child.first" ? ["ctrl+j"] : id === "command.palette.show" ? ["ctrl+p"] : []), }, data: { session: { family: () => ["session", "child"], status: (id: string) => (id === "child" ? "running" : "idle"), get: () => ({ id: "session", location: { directory: "/workspace" } }), cost: () => 1, message: { list: () => [] }, }, shell: { list: () => [{ metadata: { sessionID: "session" } }], }, location: { model: { list: () => [] }, }, }, } as unknown as Context const app = await testRender(() => , { width: 80, height: 2, }) try { await app.renderOnce() expect(app.captureCharFrame()).toContain("ctrl+j 1 subagent · 1 shell · $1.00") expect(app.captureCharFrame()).toContain("ctrl+p commands") } finally { app.renderer.destroy() } })