@@ -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