diff --git a/extensions/elevenlabs/tts.test.ts b/extensions/elevenlabs/tts.test.ts index 1d0be96eee9..65d3accd79c 100644 --- a/extensions/elevenlabs/tts.test.ts +++ b/extensions/elevenlabs/tts.test.ts @@ -1,32 +1,10 @@ import { afterEach, describe, expect, it, vi } from "vitest"; +import { createStreamingErrorResponse } from "../test-support/streaming-error-response.js"; import { elevenLabsTTS } from "./tts.js"; describe("elevenlabs tts diagnostics", () => { const originalFetch = globalThis.fetch; - function createStreamingErrorResponse(params: { - status: number; - chunkCount: number; - chunkSize: number; - byte: number; - }): { response: Response; getReadCount: () => number } { - let reads = 0; - const stream = new ReadableStream({ - pull(controller) { - if (reads >= params.chunkCount) { - controller.close(); - return; - } - reads += 1; - controller.enqueue(new Uint8Array(params.chunkSize).fill(params.byte)); - }, - }); - return { - response: new Response(stream, { status: params.status }), - getReadCount: () => reads, - }; - } - function createDefaultTtsRequest() { return { text: "hello", diff --git a/extensions/openai/tts.test.ts b/extensions/openai/tts.test.ts index 2860f57e59b..0b8a764ef0c 100644 --- a/extensions/openai/tts.test.ts +++ b/extensions/openai/tts.test.ts @@ -3,6 +3,7 @@ import os from "node:os"; import path from "node:path"; import { describe, expect, it, vi } from "vitest"; import { installDebugProxyTestResetHooks } from "../test-support/debug-proxy-env-test-helpers.js"; +import { createStreamingErrorResponse } from "../test-support/streaming-error-response.js"; import { isValidOpenAIModel, isValidOpenAIVoice, @@ -79,29 +80,6 @@ describe("openai tts", () => { }); describe("openaiTTS diagnostics", () => { - function createStreamingErrorResponse(params: { - status: number; - chunkCount: number; - chunkSize: number; - byte: number; - }): { response: Response; getReadCount: () => number } { - let reads = 0; - const stream = new ReadableStream({ - pull(controller) { - if (reads >= params.chunkCount) { - controller.close(); - return; - } - reads += 1; - controller.enqueue(new Uint8Array(params.chunkSize).fill(params.byte)); - }, - }); - return { - response: new Response(stream, { status: params.status }), - getReadCount: () => reads, - }; - } - it("includes parsed provider detail and request id for JSON API errors", async () => { const fetchMock = vi.fn( async () => diff --git a/extensions/test-support/streaming-error-response.ts b/extensions/test-support/streaming-error-response.ts new file mode 100644 index 00000000000..1ae8275c75d --- /dev/null +++ b/extensions/test-support/streaming-error-response.ts @@ -0,0 +1,22 @@ +export function createStreamingErrorResponse(params: { + status: number; + chunkCount: number; + chunkSize: number; + byte: number; +}): { response: Response; getReadCount: () => number } { + let reads = 0; + const stream = new ReadableStream({ + pull(controller) { + if (reads >= params.chunkCount) { + controller.close(); + return; + } + reads += 1; + controller.enqueue(new Uint8Array(params.chunkSize).fill(params.byte)); + }, + }); + return { + response: new Response(stream, { status: params.status }), + getReadCount: () => reads, + }; +}