Skip to content

Commit 8289f60

Browse files
test: update MailtrapClient tests to use message_ids array and improve error handling for batch sending
1 parent e033f59 commit 8289f60

1 file changed

Lines changed: 24 additions & 32 deletions

File tree

src/__tests__/lib/mailtrap-client.test.ts

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -378,11 +378,7 @@ describe("lib/mailtrap-client: ", () => {
378378
responses: [
379379
{
380380
success: true,
381-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
382-
},
383-
{
384-
success: true,
385-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
381+
message_ids: ["57f17fe0-3935-11f0-0000-f15507b34198"],
386382
},
387383
],
388384
};
@@ -443,11 +439,7 @@ describe("lib/mailtrap-client: ", () => {
443439
responses: [
444440
{
445441
success: true,
446-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
447-
},
448-
{
449-
success: true,
450-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
442+
message_ids: ["57f17fe0-3935-11f0-0000-f15507b34198"],
451443
},
452444
],
453445
};
@@ -507,11 +499,7 @@ describe("lib/mailtrap-client: ", () => {
507499
responses: [
508500
{
509501
success: true,
510-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
511-
},
512-
{
513-
success: true,
514-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
502+
message_ids: ["57f17fe0-3935-11f0-0000-f15507b34198"],
515503
},
516504
],
517505
};
@@ -572,11 +560,11 @@ describe("lib/mailtrap-client: ", () => {
572560
responses: [
573561
{
574562
success: true,
575-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
563+
message_ids: ["1cc512a0-3936-11f0-0040-f1a6f440b26b"], // First recipient
576564
},
577565
{
578566
success: true,
579-
message_id: "0c7fd939-02cf-11ed-88c2-0a58a9feac02",
567+
message_ids: ["1cc47660-3936-11f0-0040-f1a6f440b26b"], // Second recipient
580568
},
581569
],
582570
};
@@ -625,17 +613,26 @@ describe("lib/mailtrap-client: ", () => {
625613
expect(result).toEqual(expectedBatchResponseData);
626614
});
627615

628-
it("handles HTTP transport errors for batch sending", async () => {
616+
it("handles API errors for batch sending", async () => {
629617
const batchClient = new MailtrapClient({
630618
token: "MY_API_TOKEN",
631619
bulk: true,
632620
});
621+
const endpoint = `${BULK_ENDPOINT}/api/batch`;
622+
const responseData = {
623+
success: true,
624+
responses: [
625+
{
626+
success: false,
627+
errors: ["'from' is required", "'subject' is required"],
628+
},
629+
],
630+
};
631+
mock.onPost(endpoint).reply(200, responseData);
632+
633633
const batchData = {
634634
base: {
635-
from: {
636-
email: "sender@mailtrap.io",
637-
name: "Mailtrap",
638-
},
635+
from: { email: "sender@mailtrap.io", name: "Mailtrap" },
639636
subject: "Batch Subject",
640637
text: "Batch Text",
641638
},
@@ -651,16 +648,11 @@ describe("lib/mailtrap-client: ", () => {
651648
],
652649
};
653650

654-
try {
655-
await batchClient.batchSend(batchData);
656-
} catch (error) {
657-
expect(error).toBeInstanceOf(MailtrapError);
658-
if (error instanceof MailtrapError) {
659-
expect(error.message).toEqual(
660-
"Request failed with status code 404"
661-
);
662-
}
663-
}
651+
const result = await batchClient.batchSend(batchData);
652+
expect(result).toEqual(responseData);
653+
expect(result.responses[0].success).toBe(false);
654+
expect(result.responses[0].errors).toContain("'from' is required");
655+
expect(result.responses[0].errors).toContain("'subject' is required");
664656
});
665657
});
666658
});

0 commit comments

Comments
 (0)