import { describe, expect, it } from "vitest" import { attachArtworkRenditionInputSchema, createGroupingInputSchema, createMediaAssetInputSchema, linkArtworkGroupingInputSchema, } from "./media" describe("media schemas", () => { it("accepts supported media asset type payload", () => { const parsed = createMediaAssetInputSchema.parse({ type: "artwork", title: "Artwork", licenseType: "CC BY", usageContext: "homepage hero", capturedAt: new Date("2026-01-02T10:30:00.000Z"), tags: ["tag-a"], }) expect(parsed.type).toBe("artwork") expect(parsed.licenseType).toBe("CC BY") expect(parsed.tags).toEqual(["tag-a"]) }) it("validates grouping link payload", () => { const parsed = linkArtworkGroupingInputSchema.parse({ artworkId: "f40f4bcc-7148-45d7-a19d-856f7146a47e", groupType: "gallery", groupId: "f4e094df-0edf-4d5a-8b7b-c51f09cae95e", }) expect(parsed.groupType).toBe("gallery") }) it("enforces rendition slot enum", () => { const parsed = attachArtworkRenditionInputSchema.parse({ artworkId: "f40f4bcc-7148-45d7-a19d-856f7146a47e", mediaAssetId: "f4e094df-0edf-4d5a-8b7b-c51f09cae95e", slot: "thumbnail", }) expect(parsed.slot).toBe("thumbnail") }) it("supports grouping defaults", () => { const parsed = createGroupingInputSchema.parse({ name: "Featured", slug: "featured", }) expect(parsed.sortOrder).toBe(0) expect(parsed.isVisible).toBe(true) }) })