feat(media): add Convex media archive with backfill and mixed-media library
This commit is contained in:
@@ -15,6 +15,16 @@ describe("media-preview-utils", () => {
|
||||
expect(ids).toEqual(["preview-1", "orig-1", "orig-2"]);
|
||||
});
|
||||
|
||||
it("collects only available storage ids for mixed archive items", () => {
|
||||
const ids = collectMediaStorageIdsForResolution([
|
||||
{ previewUrl: "https://cdn.example.com/preview-only.jpg" },
|
||||
{ previewStorageId: "preview-2" },
|
||||
{ storageId: "orig-2" },
|
||||
]);
|
||||
|
||||
expect(ids).toEqual(["preview-2", "orig-2"]);
|
||||
});
|
||||
|
||||
it("resolves preview url first and falls back to original url", () => {
|
||||
const previewFirst = resolveMediaPreviewUrl(
|
||||
{ storageId: "orig-1", previewStorageId: "preview-1" },
|
||||
@@ -35,4 +45,32 @@ describe("media-preview-utils", () => {
|
||||
|
||||
expect(fallbackToOriginal).toBe("https://cdn.example.com/original.jpg");
|
||||
});
|
||||
|
||||
it("resolves direct remote preview URLs before storage map", () => {
|
||||
const directPreview = resolveMediaPreviewUrl(
|
||||
{
|
||||
previewUrl: "https://cdn.example.com/direct-preview.webp",
|
||||
storageId: "orig-1",
|
||||
previewStorageId: "preview-1",
|
||||
},
|
||||
{
|
||||
"preview-1": "https://cdn.example.com/preview.webp",
|
||||
"orig-1": "https://cdn.example.com/original.jpg",
|
||||
},
|
||||
);
|
||||
|
||||
expect(directPreview).toBe("https://cdn.example.com/direct-preview.webp");
|
||||
});
|
||||
|
||||
it("falls back to direct remote original URLs when storage ids are missing", () => {
|
||||
const previewUrl = resolveMediaPreviewUrl(
|
||||
{
|
||||
kind: "video",
|
||||
originalUrl: "https://cdn.example.com/video.mp4",
|
||||
},
|
||||
{},
|
||||
);
|
||||
|
||||
expect(previewUrl).toBe("https://cdn.example.com/video.mp4");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user