import type { MediaCapabilities } from "@rakazo/adapter-kit"; import type { Actor } from "@rakazo/contracts"; import { MediaOperationSchema } from "@rakazo/contracts"; import { describe, expect, it } from "vitest"; import type { MediaRouteDeps } from "./media-jobs.js"; import { getMediaCapabilities } from "./media-jobs.js"; const actor: Actor = { userId: "user-1", spaceId: "space-1", email: "user@rakazo.test", isDeploymentOwner: false, }; describe("media capabilities", () => { it("answers for the actor's space", async () => { const asked: string[] = []; const deps = { media: { capabilities: async (spaceId: string) => { asked.push(spaceId); return { transcribe: true, export_video: false } as MediaCapabilities; }, }, } as unknown as MediaRouteDeps; await expect(getMediaCapabilities(deps, actor)).resolves.toMatchObject({ transcribe: true }); expect(asked).toEqual(["space-1"]); }); it("reports nothing available without a media runtime", async () => { const capabilities = await getMediaCapabilities({} as MediaRouteDeps, actor); expect(Object.keys(capabilities)).toEqual(MediaOperationSchema.options); expect(Object.values(capabilities).every((value) => value === false)).toBe(true); }); });