feat(media): add admin media CRUD preview and storage cleanup

This commit is contained in:
2026-02-12 19:15:26 +01:00
parent 3e4f0b6c75
commit 7d9bc9dca9
11 changed files with 699 additions and 10 deletions

View File

@@ -7,7 +7,7 @@ const { mockDb } = vi.hoisted(() => ({
artworkCategory: { upsert: vi.fn() },
artworkTag: { upsert: vi.fn() },
artworkRendition: { upsert: vi.fn() },
mediaAsset: { create: vi.fn() },
mediaAsset: { create: vi.fn(), findUnique: vi.fn(), update: vi.fn(), delete: vi.fn() },
artwork: { create: vi.fn() },
gallery: { create: vi.fn() },
album: { create: vi.fn() },
@@ -24,7 +24,10 @@ import {
attachArtworkRendition,
createArtwork,
createMediaAsset,
deleteMediaAsset,
getMediaAssetById,
linkArtworkToGrouping,
updateMediaAsset,
} from "./media-foundation"
describe("media foundation service", () => {
@@ -36,6 +39,15 @@ describe("media foundation service", () => {
if ("create" in value) {
value.create.mockReset()
}
if ("findUnique" in value) {
value.findUnique.mockReset()
}
if ("update" in value) {
value.update.mockReset()
}
if ("delete" in value) {
value.delete.mockReset()
}
}
})
@@ -90,4 +102,22 @@ describe("media foundation service", () => {
expect(mockDb.mediaAsset.create).toHaveBeenCalledTimes(1)
expect(mockDb.artwork.create).toHaveBeenCalledTimes(1)
})
it("handles media asset read/update/delete operations", async () => {
mockDb.mediaAsset.findUnique.mockResolvedValue({ id: "asset-1" })
mockDb.mediaAsset.update.mockResolvedValue({ id: "asset-1", title: "Updated" })
mockDb.mediaAsset.delete.mockResolvedValue({ id: "asset-1" })
await getMediaAssetById("asset-1")
await updateMediaAsset({
id: "c58f3aca-f958-4079-b2df-c9edf3a5fb0a",
title: "Updated",
tags: ["a", "b"],
})
await deleteMediaAsset("asset-1")
expect(mockDb.mediaAsset.findUnique).toHaveBeenCalledTimes(1)
expect(mockDb.mediaAsset.update).toHaveBeenCalledTimes(1)
expect(mockDb.mediaAsset.delete).toHaveBeenCalledTimes(1)
})
})