import test from "node:test"; import assert from "node:assert/strict"; import { createRequestNormalizationService } from "../src/services/requestNormalizationService.js"; test("normalizes audio URLs to mp3 base64 and raw image base64 to data URLs", async () => { const service = createRequestNormalizationService({ audioConversionService: { async downloadAndConvertToMp3Base64(url) { assert.equal(url, "https://example.com/sample.wav"); return { data: "ZmFrZS1tcDM=", format: "mp3" }; } } }); const { normalizedBody, responseContext } = await service.normalize({ messages: [ { role: "user", content: [ { type: "image_url", image_url: { url: "iVBORw0KGgoAAAANSUhEUgAAAAUA" }, mime_type: "image/png" }, { type: "input_audio", input_audio: { url: "https://example.com/sample.wav" } } ] } ], audio: { format: "wav" } }); assert.equal(normalizedBody.messages[0].content[0].image_url.url.startsWith("data:image/png;base64,"), true); assert.deepEqual(normalizedBody.messages[0].content[1], { type: "input_audio", input_audio: { data: "ZmFrZS1tcDM=", format: "mp3" } }); assert.equal(responseContext.audioFormat, "wav"); });