From 81ae848c5b81fac0ad74f4ab4757b7eeb6115145 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Mon, 3 Aug 2026 12:56:59 +0800 Subject: [PATCH] test(deepgram): satisfy realtime fixture lint --- .../realtime-transcription-provider.test.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/extensions/deepgram/realtime-transcription-provider.test.ts b/extensions/deepgram/realtime-transcription-provider.test.ts index 0b2bfc9b2e30..b94c76d74798 100644 --- a/extensions/deepgram/realtime-transcription-provider.test.ts +++ b/extensions/deepgram/realtime-transcription-provider.test.ts @@ -4,6 +4,7 @@ import type { AddressInfo } from "node:net"; import type { OpenClawConfig } from "openclaw/plugin-sdk/config-contracts"; import { afterEach, describe, expect, it, vi } from "vitest"; import type WebSocket from "ws"; +import type { RawData } from "ws"; import { WebSocketServer } from "ws"; import { buildDeepgramRealtimeTranscriptionProvider } from "./realtime-transcription-provider.js"; @@ -64,6 +65,15 @@ function sendResult( ); } +function parseClientMessage(data: RawData): Record { + const bytes = Buffer.isBuffer(data) + ? data + : Array.isArray(data) + ? Buffer.concat(data) + : Buffer.from(data); + return JSON.parse(bytes.toString("utf8")) as Record; +} + describe("buildDeepgramRealtimeTranscriptionProvider", () => { afterEach(async () => { vi.useRealTimers(); @@ -240,7 +250,7 @@ describe("buildDeepgramRealtimeTranscriptionProvider", () => { sendResult(ws, { text: "good", isFinal: true }); sendResult(ws, { text: "bye" }); ws.on("message", (data) => { - if (JSON.parse(data.toString()).type === "Finalize") { + if (parseClientMessage(data).type === "Finalize") { sendResult(ws, { text: "bye", isFinal: true, @@ -271,7 +281,7 @@ describe("buildDeepgramRealtimeTranscriptionProvider", () => { sendResult(ws, { text: "good", isFinal: true }); sendResult(ws, { text: "bye" }); ws.on("message", (data) => { - if (JSON.parse(data.toString()).type === "Finalize") { + if (parseClientMessage(data).type === "Finalize") { finalizeRequests += 1; } }); @@ -338,7 +348,9 @@ describe("buildDeepgramRealtimeTranscriptionProvider", () => { await session.connect(); await vi.waitFor(() => expect(onPartial).toHaveBeenCalledWith("still speaking")); - await new Promise((resolve) => setTimeout(resolve, 350)); + await new Promise((resolve) => { + setTimeout(resolve, 350); + }); expect(onTranscript).not.toHaveBeenCalled(); sendResult(socket!, { text: "continuous speech", isFinal: true, speechFinal: true });