@@ -29,6 +29,7 @@ const liveEnabled = OPENAI_API_KEY.trim().length > 0 && process.env.OPENCLAW_LIV
|
29 | 29 | const describeLive = liveEnabled ? describe : describe.skip; |
30 | 30 | const EMPTY_AUTH_STORE = { version: 1, profiles: {} } as const; |
31 | 31 | const LIVE_TTS_TIMEOUT_MS = 60_000; |
| 32 | +const LIVE_STT_FIXTURE_TTS_TIMEOUT_MS = 120_000; |
32 | 33 | const ModelRegistryCtor = ModelRegistry as unknown as { |
33 | 34 | new (authStorage: AuthStorage, modelsJsonPath?: string): ModelRegistry; |
34 | 35 | }; |
@@ -336,7 +337,7 @@ describeLive("openai plugin live", () => {
|
336 | 337 | text: phrase, |
337 | 338 | cfg, |
338 | 339 | providerConfig: ttsConfig.providerConfigs.openai ?? {}, |
339 | | -timeoutMs: ttsConfig.timeoutMs, |
| 340 | +timeoutMs: LIVE_STT_FIXTURE_TTS_TIMEOUT_MS, |
340 | 341 | }); |
341 | 342 | if (!telephony) { |
342 | 343 | throw new Error("OpenAI telephony synthesis did not return audio"); |
@@ -357,13 +358,12 @@ describeLive("openai plugin live", () => {
|
357 | 358 | audio, |
358 | 359 | expectedNormalizedText: /openai.*realtime.*transcription/, |
359 | 360 | }); |
360 | | - |
361 | 361 | const normalized = transcripts.join(" ").toLowerCase(); |
362 | 362 | const compact = normalizeTranscriptForMatch(normalized); |
363 | 363 | expect(compact).toContain("openai"); |
364 | 364 | expect(normalized).toContain("transcription"); |
365 | 365 | expect(partials.length + transcripts.length).toBeGreaterThan(0); |
366 | | -}, 180_000); |
| 366 | +}, 240_000); |
367 | 367 | |
368 | 368 | it("generates an image through the registered image provider", async () => { |
369 | 369 | const { imageProviders } = await registerOpenAIPlugin(); |
|