import { expect, test } from "bun:test" import { testRender } from "@opentui/solid" import { TuiPlatformProvider, useTuiPlatform, type TuiPlatform } from "../src/platform" test("provides host platform operations", async () => { const platform: TuiPlatform = { files: { readText: async (path) => `text:${path}`, readBytes: async () => new Uint8Array([1, 2, 3]), mime: async () => "text/plain", }, } function Consumer() { const value = useTuiPlatform() return {value.clipboard ? "clipboard" : "files-only"} } const app = await testRender( () => ( ), { width: 20, height: 3 }, ) try { await app.renderOnce() expect(app.captureCharFrame()).toContain("files-only") expect(await platform.files.readText("file.txt")).toBe("text:file.txt") expect(await platform.files.readBytes("file.bin")).toEqual(new Uint8Array([1, 2, 3])) } finally { app.renderer.destroy() } }) test("requires a platform provider", () => { expect(() => useTuiPlatform()).toThrow("TuiPlatformProvider is missing") })