import { describe, expect, it } from "vitest"; import { createMockLivestreamConnector, createMockLivestreamState, transitionMockLive, } from "./index.js"; import { connectorContractTests, livestreamConnectorContractTests, } from "@tactical-media-broadcast-hub/connector-sdk/testing"; import type { ConnectorConnection } from "@tactical-media-broadcast-hub/core"; const connection: ConnectorConnection = { id: "conn-live", workspaceId: "ws-1", provider: "mock-livestream", channelId: "ch-1", credentialId: { kind: "credential-ref", id: "cred-1" }, fields: {}, createdAt: new Date(), }; connectorContractTests(createMockLivestreamConnector(createMockLivestreamState()), { connection }); livestreamConnectorContractTests( createMockLivestreamConnector(createMockLivestreamState()), { connection }, ); describe("mock-livestream scripted transitions", () => { it("state transitions are visible to the monitor side", async () => { const state = createMockLivestreamState(); const connector = createMockLivestreamConnector(state); const live = await connector.createLiveStream?.(connection, { channelId: "ch-1", title: "fixture", permanent: false, saveReplay: false, }); expect(live?.state).toBe("created"); transitionMockLive(state, live!.remoteId, "live"); const page = await connector.getLiveStreams?.(connection, { limit: 10 }); expect(page?.items[0]?.state).toBe("live"); }); });