import { describe, expect, it } from "bun:test"; import { previewConnectionPairRequestSchema, previewConnectionPairResponseSchema, } from "./preview-connection"; describe("preview connection protocol", () => { it("parses pair requests", () => { const result = previewConnectionPairRequestSchema.parse({ capabilities: ["post-message", "flow-display-sync"], expectedRevision: 3, pairedAppApiKey: "app_api_key", pairedIdentity: "preview-identity", pairedUrl: "https://customer.example.com/app", }); expect(result).toEqual({ capabilities: ["post-message", "flow-display-sync"], expectedRevision: 3, pairedAppApiKey: "app_api_key", pairedIdentity: "preview-identity", pairedUrl: "https://customer.example.com/app", }); }); it("keeps paired app api keys optional for patch-compatible clients", () => { const result = previewConnectionPairRequestSchema.parse({ capabilities: ["post-message"], expectedRevision: 3, pairedIdentity: "preview-identity", pairedUrl: null, }); expect(result).toEqual({ capabilities: ["post-message"], expectedRevision: 3, pairedIdentity: "preview-identity", pairedUrl: null, }); }); it("parses pair responses", () => { const result = previewConnectionPairResponseSchema.parse({ appId: "app_123", capabilities: ["post-message"], id: "prvs_123", organizationId: "org_123", pairedAt: "2026-06-28T00:00:00.000Z", pairedIdentity: "preview-identity", pairedUrl: null, revision: 4, }); expect(result).toEqual({ appId: "app_123", capabilities: ["post-message"], id: "prvs_123", organizationId: "org_123", pairedAt: "2026-06-28T00:00:00.000Z", pairedIdentity: "preview-identity", pairedUrl: null, revision: 4, }); }); });