diff --git a/electron/mediaTypes.test.ts b/electron/mediaTypes.test.ts new file mode 100644 index 000000000..50dd99359 --- /dev/null +++ b/electron/mediaTypes.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from "vitest"; +import { getMediaContentType, isSupportedLocalMediaPath } from "./mediaTypes"; + +describe("mediaTypes", () => { + it("allows macOS mic and system audio sidecars (.m4a)", () => { + expect(isSupportedLocalMediaPath("/tmp/recording-1.mic.m4a")).toBe(true); + expect(isSupportedLocalMediaPath("/tmp/recording-1.system.m4a")).toBe(true); + expect(getMediaContentType("/tmp/recording-1.mic.m4a")).toBe("audio/mp4"); + }); + + it("still rejects unsupported extensions", () => { + expect(isSupportedLocalMediaPath("/tmp/notes.txt")).toBe(false); + expect(getMediaContentType("/tmp/notes.txt")).toBe("application/octet-stream"); + }); +}); diff --git a/electron/mediaTypes.ts b/electron/mediaTypes.ts index 5c4307b63..a27fb39a1 100644 --- a/electron/mediaTypes.ts +++ b/electron/mediaTypes.ts @@ -8,6 +8,7 @@ export const MEDIA_CONTENT_TYPES: Record = { ".avi": "video/x-msvideo", ".wav": "audio/wav", ".mp3": "audio/mpeg", + ".m4a": "audio/mp4", ".ogg": "audio/ogg", ".png": "image/png", ".jpg": "image/jpeg",