test(voice-call): type twilio webhook helpers

This commit is contained in:
Vincent Koc
2026-04-12 09:10:56 +01:00
parent d230552956
commit 0d2fcd3bbf

View File

@@ -4,6 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { VoiceCallConfigSchema, type VoiceCallConfig } from "./config.js";
import type { CallManager } from "./manager.js";
import type { VoiceCallProvider } from "./providers/base.js";
import type { TwilioProvider } from "./providers/twilio.js";
import type { CallRecord, NormalizedEvent } from "./types.js";
import { VoiceCallWebhookServer } from "./webhook.js";
import type { RealtimeCallHandler } from "./webhook/realtime-handler.js";
@@ -114,9 +115,19 @@ function expectWebhookUrl(url: string, expectedPath: string) {
expect(parsed.port).not.toBe("0");
}
type TwilioTestProvider = VoiceCallProvider &
Pick<
TwilioProvider,
| "clearTtsQueue"
| "hasRegisteredStream"
| "isValidStreamToken"
| "registerCallStream"
| "unregisterCallStream"
>;
function createTwilioVerificationProvider(
overrides: Partial<VoiceCallProvider> = {},
): VoiceCallProvider {
overrides: Partial<TwilioTestProvider> = {},
): TwilioTestProvider {
return {
...provider,
name: "twilio",
@@ -126,8 +137,8 @@ function createTwilioVerificationProvider(
}
function createTwilioStreamingProvider(
overrides: Partial<VoiceCallProvider> = {},
): VoiceCallProvider {
overrides: Partial<TwilioTestProvider> = {},
): TwilioTestProvider {
return createTwilioVerificationProvider({
parseWebhookEvent: () => ({ events: [] }),
initiateCall: async () => ({ providerCallId: "provider-call", status: "initiated" as const }),