| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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<typeof useTuiPaths>
- function Runtime() {
- paths = useTuiPaths()
- return <text>{paths.cwd}</text>
- }
- const app = await testRender(
- () => (
- <TuiPathsProvider value={{ cwd: "/work", home: "/home/test", state: "/state", worktree: "/worktree" }}>
- <Runtime />
- </TuiPathsProvider>
- ),
- { width: 40, height: 3 },
- )
- try {
- await app.renderOnce()
- expect(app.captureCharFrame()).toContain("/work")
- expect(Object.isFrozen(paths!)).toBe(true)
- } finally {
- app.renderer.destroy()
- }
- })
|