test(media): cover canonical file URL dedupe

Amp-Thread-ID: https://ampcode.com/threads/T-019fed8d-ad78-74f0-9592-a3466bb6a9bd
Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
Amp
2026-08-10 21:31:45 +00:00
parent a6522db210
commit 63efbbc879
2 changed files with 12 additions and 3 deletions
+6 -3
View File
@@ -131,10 +131,13 @@ describe("filterMessagingToolMediaDuplicates", () => {
expect(result).toBe(payloads);
});
it("dedupes equivalent file and local path variants", () => {
it.each([
["/tmp/photo.jpg", "file:///tmp/photo.jpg"],
["FILE:/tmp/photo.jpg", "file:///tmp/photo.jpg"],
])("dedupes equivalent media references %s and %s", (mediaUrl, sentMediaUrl) => {
const result = filterMessagingToolMediaDuplicates({
payloads: [{ text: "hello", mediaUrl: "/tmp/photo.jpg" }],
sentMediaUrls: ["file:///tmp/photo.jpg"],
payloads: [{ text: "hello", mediaUrl }],
sentMediaUrls: [sentMediaUrl],
});
expect(result).toEqual([{ text: "hello", mediaUrl: undefined, mediaUrls: undefined }]);
});
@@ -6,6 +6,9 @@ describe("normalizeMediaReferenceForComparison", () => {
expect(normalizeMediaReferenceForComparison("file:///tmp/generated%20image.png")).toBe(
normalizeMediaReferenceForComparison("/tmp/generated image.png"),
);
expect(normalizeMediaReferenceForComparison("FILE:/tmp/generated%20image.png")).toBe(
normalizeMediaReferenceForComparison("/tmp/generated image.png"),
);
});
it("keeps parent segments distinct without resolving filesystem identity", () => {
@@ -60,6 +63,9 @@ describe("normalizeMediaReferenceForComparison", () => {
expect(normalizeMediaReferenceForComparison("file:///tmp/100%.png")).toBe(
normalizeMediaReferenceForComparison("/tmp/100%.png"),
);
expect(normalizeMediaReferenceForComparison("FILE:/tmp/100%.png")).toBe(
normalizeMediaReferenceForComparison("/tmp/100%.png"),
);
expect(normalizeMediaReferenceForComparison("file:///tmp/link/../asset%.png")).toBe(
"/tmp/link/../asset%.png",
);