mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-16 11:41:08 +00:00
47 lines
1.6 KiB
TypeScript
47 lines
1.6 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
createRequestCaptureJsonFetch,
|
|
installPinnedHostnameTestHooks,
|
|
} from "../../src/media-understanding/audio.test-helpers.ts";
|
|
import { mistralMediaUnderstandingProvider } from "./media-understanding-provider.js";
|
|
|
|
installPinnedHostnameTestHooks();
|
|
|
|
describe("mistralMediaUnderstandingProvider", () => {
|
|
it("has expected provider metadata", () => {
|
|
expect(mistralMediaUnderstandingProvider.id).toBe("mistral");
|
|
expect(mistralMediaUnderstandingProvider.capabilities).toEqual(["audio"]);
|
|
expect(mistralMediaUnderstandingProvider.transcribeAudio).toBeDefined();
|
|
});
|
|
|
|
it("uses Mistral base URL by default", async () => {
|
|
const { fetchFn, getRequest } = createRequestCaptureJsonFetch({ text: "bonjour" });
|
|
|
|
const result = await mistralMediaUnderstandingProvider.transcribeAudio!({
|
|
buffer: Buffer.from("audio-bytes"),
|
|
fileName: "voice.ogg",
|
|
apiKey: "test-mistral-key",
|
|
timeoutMs: 5000,
|
|
fetchFn,
|
|
});
|
|
|
|
expect(getRequest().url).toBe("https://api.mistral.ai/v1/audio/transcriptions");
|
|
expect(result.text).toBe("bonjour");
|
|
});
|
|
|
|
it("allows overriding baseUrl", async () => {
|
|
const { fetchFn, getRequest } = createRequestCaptureJsonFetch({ text: "ok" });
|
|
|
|
await mistralMediaUnderstandingProvider.transcribeAudio!({
|
|
buffer: Buffer.from("audio"),
|
|
fileName: "note.mp3",
|
|
apiKey: "key",
|
|
timeoutMs: 1000,
|
|
baseUrl: "https://custom.mistral.example/v1",
|
|
fetchFn,
|
|
});
|
|
|
|
expect(getRequest().url).toBe("https://custom.mistral.example/v1/audio/transcriptions");
|
|
});
|
|
});
|