






















@@ -41,15 +41,11 @@ describe("twilioApiRequest", () => {
4141expect(auditContext).toBe("voice-call.twilio.api");
4242expect(policy).toEqual({ allowedHostnames: ["api.twilio.com"] });
4343expect(timeoutMs).toBe(30_000);
44-expect(init).toEqual(
45-expect.objectContaining({
46-method: "POST",
47-headers: {
48-Authorization: `Basic ${Buffer.from("AC123:secret").toString("base64")}`,
49-"Content-Type": "application/x-www-form-urlencoded",
50-},
51-}),
52-);
44+expect(init?.method).toBe("POST");
45+expect(init?.headers).toEqual({
46+Authorization: `Basic ${Buffer.from("AC123:secret").toString("base64")}`,
47+"Content-Type": "application/x-www-form-urlencoded",
48+});
5349const requestBody = init?.body;
5450if (!(requestBody instanceof URLSearchParams)) {
5551throw new Error("expected URLSearchParams request body");
@@ -126,20 +122,25 @@ describe("twilioApiRequest", () => {
126122 release,
127123});
128124129-await expect(
130-twilioApiRequest({
125+try {
126+await twilioApiRequest({
131127baseUrl: "https://api.twilio.com",
132128accountSid: "AC123",
133129authToken: "secret",
134130endpoint: "/Calls/CA123.json",
135131body: {},
136-}),
137-).rejects.toMatchObject({
138-name: "TwilioApiError",
139-httpStatus: 400,
140-twilioCode: 21220,
141-message: "Twilio API error: 400 Call is not in-progress. Cannot redirect.",
142-} satisfies Partial<TwilioApiError>);
132+});
133+throw new Error("expected Twilio API request to reject");
134+} catch (error) {
135+expect(error).toBeInstanceOf(TwilioApiError);
136+const twilioError = error as TwilioApiError;
137+expect(twilioError.name).toBe("TwilioApiError");
138+expect(twilioError.httpStatus).toBe(400);
139+expect(twilioError.twilioCode).toBe(21220);
140+expect(twilioError.message).toBe(
141+"Twilio API error: 400 Call is not in-progress. Cannot redirect.",
142+);
143+}
143144expect(release).toHaveBeenCalledTimes(1);
144145});
145146});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。