| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import { expect, test } from "bun:test"
- import { createPluginRuntime } from "../../src/plugin/runtime"
- test("routes use the latest registration and restore previous registrations", () => {
- const runtime = createPluginRuntime()
- const first = () => "first"
- const second = () => "second"
- runtime.routes.register([{ name: "demo", render: first }])
- const dispose = runtime.routes.register([{ name: "demo", render: second }])
- expect(runtime.routes.get("demo")).toBe(second)
- dispose()
- expect(runtime.routes.get("demo")).toBe(first)
- })
- test("facade publishes and clears presentation state", async () => {
- const runtime = createPluginRuntime()
- runtime.update({
- commands: {
- async activate() {
- return true
- },
- async deactivate() {
- return true
- },
- async add() {
- return true
- },
- async install() {
- return { ok: true, dir: "/tmp", tui: true }
- },
- },
- status: [
- {
- id: "demo",
- source: "internal",
- spec: "demo",
- target: "demo",
- enabled: true,
- active: true,
- },
- ],
- })
- expect(await runtime.commands().activate("demo")).toBe(true)
- expect(runtime.status()).toHaveLength(1)
- runtime.clear()
- expect(await runtime.commands().activate("demo")).toBe(false)
- expect(runtime.status()).toEqual([])
- })
|