import { expect, test } from "bun:test" import { testRender } from "@opentui/solid" import { abbreviateHome } from "../src/runtime" import { TuiPathsProvider, useTuiPaths } from "../src/context/runtime" test("abbreviates paths within home boundaries", () => { expect(abbreviateHome("/home/test", "/home/test")).toBe("~") expect(abbreviateHome("/home/test/project", "/home/test")).toBe("~/project") expect(abbreviateHome("/home/tester/project", "/home/test")).toBe("/home/tester/project") expect(abbreviateHome("/tmp/project", "/home/test")).toBe("/tmp/project") }) test("provides focused immutable runtime inputs", async () => { let paths: ReturnType function Runtime() { paths = useTuiPaths() return {paths.cwd} } const app = await testRender( () => ( ), { width: 40, height: 3 }, ) try { await app.renderOnce() expect(app.captureCharFrame()).toContain("/work") expect(Object.isFrozen(paths!)).toBe(true) } finally { app.renderer.destroy() } })