mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-04 10:11:46 +03:00
fix(tui): keep context view concise
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import { afterEach, describe, expect, test } from "bun:test"
|
||||
import { createTestRenderer, type TestRendererSetup } from "@opentui/core/testing"
|
||||
|
||||
import { ContextPanel } from "./context-panel"
|
||||
import type { SessionContextSnapshot } from "./protocol"
|
||||
|
||||
const context: SessionContextSnapshot = {
|
||||
totalMessages: 8,
|
||||
archivedMessages: 0,
|
||||
replayMessages: 8,
|
||||
estimatedReplayTokens: 950,
|
||||
estimatedSummaryTokens: 0,
|
||||
estimatedSessionTokens: 950,
|
||||
archivedSummary: null,
|
||||
archivedSummaryAt: null,
|
||||
lastUsage: null,
|
||||
}
|
||||
|
||||
describe("ContextPanel", () => {
|
||||
let setup: TestRendererSetup | undefined
|
||||
|
||||
afterEach(() => {
|
||||
if (setup && !setup.renderer.isDestroyed) setup.renderer.destroy()
|
||||
setup = undefined
|
||||
})
|
||||
|
||||
test("omits explanatory copy when no compacted summary exists", async () => {
|
||||
setup = await createTestRenderer({ width: 80, height: 18, screenMode: "alternate-screen" })
|
||||
const panel = new ContextPanel(setup.renderer, {
|
||||
text: "#FFFFFF",
|
||||
border: "#555555",
|
||||
accent: "#EF8E30",
|
||||
})
|
||||
setup.renderer.root.add(panel.root)
|
||||
panel.show(context)
|
||||
await setup.renderOnce()
|
||||
|
||||
const frame = setup.captureCharFrame()
|
||||
expect(frame).toContain("~950 tokens · 8 replay · 0 archived")
|
||||
expect(frame).not.toContain("Agent context")
|
||||
expect(frame).not.toContain("no compacted summary")
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user