@@ -402,6 +402,54 @@ describe('ApiMailAdapter', () => {
402402 expect ( payload . Message . Body . Text . Data ) . toBe ( examplePayload . text ) ;
403403 expect ( payload . Message . Body . Html . Data ) . toBe ( examplePayload . html ) ;
404404 } ) ;
405+
406+ describe ( 'convert ZeptoMail API v1.1 payload' , ( ) => {
407+ it ( 'converts single recipient payload' , ( ) => {
408+ const payload = converter . zeptomail ( { api : '1.1' , payload : examplePayload } ) ;
409+ expect ( payload . from . address ) . toEqual ( examplePayload . from ) ;
410+ expect ( payload . to ) . toBeInstanceOf ( Array ) ;
411+ expect ( payload . to . length ) . toBe ( 1 ) ;
412+ expect ( payload . to [ 0 ] . email_address . address ) . toEqual ( examplePayload . to ) ;
413+ expect ( payload . reply_to ) . toBeInstanceOf ( Array ) ;
414+ expect ( payload . reply_to . length ) . toBe ( 1 ) ;
415+ expect ( payload . reply_to [ 0 ] . address ) . toEqual ( examplePayload . replyTo ) ;
416+ expect ( payload . subject ) . toBe ( examplePayload . subject ) ;
417+ expect ( payload . textbody ) . toBe ( examplePayload . text ) ;
418+ expect ( payload . htmlbody ) . toBe ( examplePayload . html ) ;
419+ } ) ;
420+
421+ it ( 'converts multiple recipients payload' , ( ) => {
422+ const examplePayload = {
423+ from : "from@example.com" ,
424+ to : "to@example.com,toanother@example.com" ,
425+ replyTo : "replyto@example.com, replytoanother@example.com" ,
426+ subject : "ExampleSubject" ,
427+ text : "ExampleText" ,
428+ html : "ExampleHtml"
429+ }
430+ const payload = converter . zeptomail ( { api : '1.1' , payload : examplePayload } ) ;
431+ expect ( payload . from . address ) . toEqual ( examplePayload . from ) ;
432+ expect ( payload . to ) . toBeInstanceOf ( Array ) ;
433+ const exmplePayloadToAddresses = examplePayload . to . split ( ',' ) ;
434+ const toAddresses = payload . to . map ( entry => entry . email_address . address ) ;
435+ exmplePayloadToAddresses . forEach ( ( address , index ) => {
436+ expect ( address ) . toBe ( toAddresses [ index ] ) ;
437+ } ) ;
438+ expect ( payload . reply_to ) . toBeInstanceOf ( Array ) ;
439+ const exmpleReplyToAddresses = examplePayload . replyTo . split ( ',' ) . map ( addr => addr . trim ( ) ) ;
440+ const replyToAddresses = payload . reply_to [ 0 ] . address . split ( ',' ) . map ( addr => addr . trim ( ) ) ;
441+ exmpleReplyToAddresses . forEach ( ( exampleAddress , index ) => {
442+ expect ( replyToAddresses [ index ] ) . toBe ( exampleAddress ) ;
443+ } ) ;
444+ expect ( payload . subject ) . toBe ( examplePayload . subject ) ;
445+ expect ( payload . textbody ) . toBe ( examplePayload . text ) ;
446+ expect ( payload . htmlbody ) . toBe ( examplePayload . html ) ;
447+ } ) ;
448+
449+ it ( 'throws if unsupported version' , ( ) => {
450+ expect ( ( ) => converter . zeptomail ( { api : 'invalidVersion' , payload : examplePayload } ) ) . toThrowError ( / i n v a l i d V e r s i o n / ) ;
451+ } ) ;
452+ } ) ;
405453 } ) ;
406454
407455 describe ( 'invoke _sendMail' , function ( ) {
0 commit comments