feat: replace CJS require with static imports, add comprehensive layout system tests
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user