refactor: preserve explicit mock voice-call values

This commit is contained in:
Peter Steinberger
2026-03-08 02:58:36 +00:00
parent bd413263b2
commit f6c7ff3e0e
2 changed files with 86 additions and 8 deletions

View File

@@ -0,0 +1,78 @@
import { describe, expect, it } from "vitest";
import type { WebhookContext } from "../types.js";
import { MockProvider } from "./mock.js";
function createWebhookContext(rawBody: string): WebhookContext {
return {
headers: {},
rawBody,
url: "http://localhost/voice/webhook",
method: "POST",
query: {},
};
}
describe("MockProvider", () => {
it("preserves explicit falsy event values", () => {
const provider = new MockProvider();
const result = provider.parseWebhookEvent(
createWebhookContext(
JSON.stringify({
events: [
{
id: "evt-error",
type: "call.error",
callId: "call-1",
timestamp: 0,
error: "",
retryable: false,
},
{
id: "evt-ended",
type: "call.ended",
callId: "call-2",
reason: "",
},
{
id: "evt-speech",
type: "call.speech",
callId: "call-3",
transcript: "",
isFinal: false,
},
],
}),
),
);
expect(result.events).toEqual([
{
id: "evt-error",
type: "call.error",
callId: "call-1",
providerCallId: undefined,
timestamp: 0,
error: "",
retryable: false,
},
{
id: "evt-ended",
type: "call.ended",
callId: "call-2",
providerCallId: undefined,
timestamp: expect.any(Number),
reason: "",
},
{
id: "evt-speech",
type: "call.speech",
callId: "call-3",
providerCallId: undefined,
timestamp: expect.any(Number),
transcript: "",
isFinal: false,
confidence: undefined,
},
]);
});
});