import test, { describe } from "node:test" import assert from "node:assert" import { resolveFrame, frameRegistry } from "./index" import { DefaultFrame } from "./DefaultFrame" import { FullWidthFrame } from "./FullWidthFrame" import type { PageFrame } from "./types" const customFrame: PageFrame = { name: "custom-test-frame", render: () => null as any, } describe("resolveFrame", () => { test("returns DefaultFrame for undefined", () => { assert.strictEqual(resolveFrame(undefined), DefaultFrame) }) test("returns DefaultFrame for 'default'", () => { assert.strictEqual(resolveFrame("default"), DefaultFrame) }) test("returns named built-in frame", () => { assert.strictEqual(resolveFrame("full-width"), FullWidthFrame) }) test("returns DefaultFrame for unknown frame name", () => { assert.strictEqual(resolveFrame("nonexistent"), DefaultFrame) }) test("plugin-registered frame takes priority", () => { frameRegistry.register("custom-test-frame", customFrame, "test-plugin") const result = resolveFrame("custom-test-frame") assert.strictEqual(result, customFrame) }) test("returns DefaultFrame for unknown name even with plugin frames registered", () => { frameRegistry.register("custom-test-frame", customFrame, "test-plugin") const result = resolveFrame("totally-unknown") assert.strictEqual(result, DefaultFrame) }) })