import { describe, expect, it } from "vitest"; import { SurfaceInstanceManager } from "./surface-instance-manager"; import { SurfaceRegistry } from "./surface-registry"; const APP = "lineup.task-dashboard"; const VERSION = "0.1.0"; const CONVERSATION = "conversation_surface_001"; const OPENED = "2026-08-03T10:30:00.000Z"; const UPDATED = "2026-08-03T10:31:00.000Z"; function createManager(): { registry: SurfaceRegistry; manager: SurfaceInstanceManager } { const registry = new SurfaceRegistry(); registry.enable(APP, VERSION, OPENED); return { registry, manager: new SurfaceInstanceManager(registry) }; } function openPayload(state: object = { title: "Build", percent: 10 }): object { return { instance_id: "task:001", app: { app_id: APP, version: VERSION }, state }; } describe("SurfaceInstanceManager", () => { it("opens only an explicitly enabled local app and makes same-instance open idempotent", () => { const { manager } = createManager(); expect(manager.open(openPayload(), CONVERSATION, OPENED)).toMatchObject({ disposition: "accepted", instance: { phase: "opening", state: { title: "Build", percent: 10 } } }); expect(manager.open(openPayload({ title: "Ignored patch" }), CONVERSATION, UPDATED)).toMatchObject({ disposition: "duplicate", instance: { state: { title: "Build", percent: 10 } } }); }); it("rejects an unenabled app, an app-version mismatch, and injected bundle fields", () => { const registry = new SurfaceRegistry(); const manager = new SurfaceInstanceManager(registry); expect(manager.open(openPayload(), CONVERSATION, OPENED).disposition).toBe("disabled"); registry.enable(APP, VERSION, OPENED); expect(manager.open({ ...openPayload(), app: { app_id: APP, version: "1.0.0" } }, CONVERSATION, OPENED).disposition).toBe("version_mismatch"); expect(manager.open({ ...openPayload(), bundle: "