@@ -455,7 +455,9 @@ describe('submission.service', () => {
455455 form : mockForm ,
456456 recipientData,
457457 submission : MOCK_SUBMISSION ,
458- attachments : MOCK_ATTACHMENTS ,
458+ submissionAttachments : MOCK_ATTACHMENTS ,
459+ pdfAttachment : undefined ,
460+ isPaymentEnabled : false ,
459461 responsesData : MOCK_AUTOREPLY_DATA ,
460462 } )
461463
@@ -467,7 +469,9 @@ describe('submission.service', () => {
467469 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
468470 form : mockForm ,
469471 submission : MOCK_SUBMISSION ,
470- attachments : MOCK_ATTACHMENTS ,
472+ submissionAttachments : MOCK_ATTACHMENTS ,
473+ pdfAttachment : undefined ,
474+ isPaymentEnabled : false ,
471475 responsesData : MOCK_AUTOREPLY_DATA ,
472476 autoReplyMailDatas : expectedAutoReplyData ,
473477 } )
@@ -496,7 +500,9 @@ describe('submission.service', () => {
496500 form : mockForm ,
497501 recipientData,
498502 submission : MOCK_SUBMISSION ,
499- attachments : MOCK_ATTACHMENTS ,
503+ submissionAttachments : MOCK_ATTACHMENTS ,
504+ pdfAttachment : undefined ,
505+ isPaymentEnabled : false ,
500506 responsesData : MOCK_AUTOREPLY_DATA ,
501507 } )
502508
@@ -541,7 +547,9 @@ describe('submission.service', () => {
541547 form : mockForm ,
542548 recipientData,
543549 submission : MOCK_SUBMISSION ,
544- attachments : MOCK_ATTACHMENTS ,
550+ submissionAttachments : MOCK_ATTACHMENTS ,
551+ pdfAttachment : undefined ,
552+ isPaymentEnabled : false ,
545553 responsesData : MOCK_AUTOREPLY_DATA ,
546554 } )
547555
@@ -592,7 +600,9 @@ describe('submission.service', () => {
592600 form : mockForm ,
593601 recipientData,
594602 submission : MOCK_SUBMISSION ,
595- attachments : MOCK_ATTACHMENTS ,
603+ submissionAttachments : MOCK_ATTACHMENTS ,
604+ pdfAttachment : undefined ,
605+ isPaymentEnabled : false ,
596606 responsesData : MOCK_AUTOREPLY_DATA ,
597607 } )
598608
@@ -601,7 +611,9 @@ describe('submission.service', () => {
601611 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
602612 form : mockForm ,
603613 submission : MOCK_SUBMISSION ,
604- attachments : MOCK_ATTACHMENTS ,
614+ submissionAttachments : MOCK_ATTACHMENTS ,
615+ pdfAttachment : undefined ,
616+ isPaymentEnabled : false ,
605617 responsesData : MOCK_AUTOREPLY_DATA ,
606618 autoReplyMailDatas : expectedAutoReplyData ,
607619 } )
@@ -655,8 +667,10 @@ describe('submission.service', () => {
655667 form : mockForm ,
656668 recipientData,
657669 submission : MOCK_SUBMISSION ,
658- attachments : MOCK_ATTACHMENTS ,
659- responsesData : undefined ,
670+ submissionAttachments : MOCK_ATTACHMENTS ,
671+ pdfAttachment : undefined ,
672+ isPaymentEnabled : false ,
673+ responsesData : [ ] ,
660674 } )
661675
662676 const expectedAutoReplyData = [
@@ -667,14 +681,16 @@ describe('submission.service', () => {
667681 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
668682 form : mockForm ,
669683 submission : MOCK_SUBMISSION ,
670- attachments : MOCK_ATTACHMENTS ,
684+ submissionAttachments : MOCK_ATTACHMENTS ,
671685 responsesData : [ ] ,
672686 autoReplyMailDatas : expectedAutoReplyData ,
687+ pdfAttachment : undefined ,
688+ isPaymentEnabled : false ,
673689 } )
674690 expect ( result . _unsafeUnwrap ( ) ) . toBe ( true )
675691 } )
676692
677- it ( 'should call mail service with attachments undefined when there are no attachments ' , async ( ) => {
693+ it ( 'should call mail service with pdfAttachment when a pdfAttachment is provided ' , async ( ) => {
678694 const mockForm = {
679695 _id : MOCK_FORM_ID ,
680696 form_fields : [
@@ -717,12 +733,19 @@ describe('submission.service', () => {
717733 responses ,
718734 mockForm . form_fields ,
719735 )
736+
737+ const MOCK_PDF_ATTACHMENT = {
738+ content : Buffer . from ( 'mock pdf buffer' ) ,
739+ filename : 'response.pdf' ,
740+ }
720741 const result = await SubmissionService . sendEmailConfirmations ( {
721742 form : mockForm ,
722743 recipientData,
723744 submission : MOCK_SUBMISSION ,
724- attachments : undefined ,
745+ submissionAttachments : undefined ,
725746 responsesData : MOCK_AUTOREPLY_DATA ,
747+ isPaymentEnabled : false ,
748+ pdfAttachment : MOCK_PDF_ATTACHMENT ,
726749 } )
727750
728751 const expectedAutoReplyData = [
@@ -733,7 +756,79 @@ describe('submission.service', () => {
733756 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
734757 form : mockForm ,
735758 submission : MOCK_SUBMISSION ,
736- attachments : undefined ,
759+ submissionAttachments : undefined ,
760+ pdfAttachment : MOCK_PDF_ATTACHMENT ,
761+ isPaymentEnabled : false ,
762+ responsesData : MOCK_AUTOREPLY_DATA ,
763+ autoReplyMailDatas : expectedAutoReplyData ,
764+ } )
765+ expect ( result . _unsafeUnwrap ( ) ) . toBe ( true )
766+ } )
767+
768+ it ( 'should call mail service with submissionAttachments undefined and pdfAttachment undefined when there are no submissionAttachments or pdfAttachment' , async ( ) => {
769+ const mockForm = {
770+ _id : MOCK_FORM_ID ,
771+ form_fields : [
772+ {
773+ ...generateDefaultField ( BasicField . Email ) ,
774+ autoReplyOptions : AUTOREPLY_OPTIONS_1 ,
775+ } ,
776+ {
777+ ...generateDefaultField ( BasicField . Email ) ,
778+ autoReplyOptions : AUTOREPLY_OPTIONS_2 ,
779+ } ,
780+ ] ,
781+ } as unknown as IPopulatedForm
782+ MockMailService . sendAutoReplyEmails . mockResolvedValueOnce ( [
783+ {
784+ status : 'fulfilled' ,
785+ value : ok ( true ) ,
786+ } ,
787+ {
788+ status : 'fulfilled' ,
789+ value : ok ( true ) ,
790+ } ,
791+ ] )
792+
793+ const responses = [
794+ {
795+ ...generateNewSingleAnswerResponse ( BasicField . Email , {
796+ _id : mockForm . form_fields ! [ 0 ] . _id ,
797+ answer : MOCK_EMAIL_1 ,
798+ } ) ,
799+ } ,
800+ {
801+ ...generateNewSingleAnswerResponse ( BasicField . Email , {
802+ _id : mockForm . form_fields ! [ 1 ] . _id ,
803+ answer : MOCK_EMAIL_2 ,
804+ } ) ,
805+ } ,
806+ ]
807+ const recipientData = extractEmailConfirmationData (
808+ responses ,
809+ mockForm . form_fields ,
810+ )
811+ const result = await SubmissionService . sendEmailConfirmations ( {
812+ form : mockForm ,
813+ recipientData,
814+ submission : MOCK_SUBMISSION ,
815+ submissionAttachments : undefined ,
816+ responsesData : MOCK_AUTOREPLY_DATA ,
817+ isPaymentEnabled : false ,
818+ pdfAttachment : undefined ,
819+ } )
820+
821+ const expectedAutoReplyData = [
822+ EXPECTED_AUTOREPLY_DATA_1 ,
823+ EXPECTED_AUTOREPLY_DATA_2 ,
824+ ]
825+
826+ expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
827+ form : mockForm ,
828+ submission : MOCK_SUBMISSION ,
829+ submissionAttachments : undefined ,
830+ pdfAttachment : undefined ,
831+ isPaymentEnabled : false ,
737832 responsesData : MOCK_AUTOREPLY_DATA ,
738833 autoReplyMailDatas : expectedAutoReplyData ,
739834 } )
@@ -780,8 +875,10 @@ describe('submission.service', () => {
780875 form : mockForm ,
781876 recipientData,
782877 submission : MOCK_SUBMISSION ,
783- attachments : MOCK_ATTACHMENTS ,
878+ submissionAttachments : MOCK_ATTACHMENTS ,
784879 responsesData : MOCK_AUTOREPLY_DATA ,
880+ isPaymentEnabled : false ,
881+ pdfAttachment : undefined ,
785882 } )
786883
787884 const expectedAutoReplyData = [
@@ -792,7 +889,9 @@ describe('submission.service', () => {
792889 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
793890 form : mockForm ,
794891 submission : MOCK_SUBMISSION ,
795- attachments : MOCK_ATTACHMENTS ,
892+ submissionAttachments : MOCK_ATTACHMENTS ,
893+ pdfAttachment : undefined ,
894+ isPaymentEnabled : false ,
796895 responsesData : MOCK_AUTOREPLY_DATA ,
797896 autoReplyMailDatas : expectedAutoReplyData ,
798897 } )
@@ -849,8 +948,10 @@ describe('submission.service', () => {
849948 form : mockForm ,
850949 recipientData,
851950 submission : MOCK_SUBMISSION ,
852- attachments : MOCK_ATTACHMENTS ,
951+ submissionAttachments : MOCK_ATTACHMENTS ,
853952 responsesData : MOCK_AUTOREPLY_DATA ,
953+ isPaymentEnabled : false ,
954+ pdfAttachment : undefined ,
854955 } )
855956
856957 const expectedAutoReplyData = [
@@ -861,9 +962,11 @@ describe('submission.service', () => {
861962 expect ( MockMailService . sendAutoReplyEmails ) . toHaveBeenCalledWith ( {
862963 form : mockForm ,
863964 submission : MOCK_SUBMISSION ,
864- attachments : MOCK_ATTACHMENTS ,
965+ submissionAttachments : MOCK_ATTACHMENTS ,
865966 responsesData : MOCK_AUTOREPLY_DATA ,
866967 autoReplyMailDatas : expectedAutoReplyData ,
968+ pdfAttachment : undefined ,
969+ isPaymentEnabled : false ,
867970 } )
868971 expect ( result . _unsafeUnwrapErr ( ) ) . toEqual (
869972 new SendEmailConfirmationError ( ) ,
@@ -2747,7 +2850,11 @@ describe('submission.service', () => {
27472850
27482851 // Act
27492852 // empty string for version id to simulate failure
2750- const actualResult = await downloadCleanFile ( 'invalid-key' , '' )
2853+ const actualResult = await downloadCleanFile (
2854+ 'invalid-key' ,
2855+ '' ,
2856+ 'mock-bucket-name' ,
2857+ )
27512858
27522859 // Assert
27532860 expect ( awsSpy ) . not . toHaveBeenCalled ( )
@@ -2761,7 +2868,11 @@ describe('submission.service', () => {
27612868
27622869 // Act
27632870 // empty string for version id to simulate failure
2764- const actualResult = await downloadCleanFile ( MOCK_VALID_UUID , '' )
2871+ const actualResult = await downloadCleanFile (
2872+ MOCK_VALID_UUID ,
2873+ '' ,
2874+ 'mock-bucket-name' ,
2875+ )
27652876
27662877 // Assert
27672878 expect ( awsSpy ) . toHaveBeenCalledOnce ( )
@@ -2796,7 +2907,11 @@ describe('submission.service', () => {
27962907
27972908 // Act
27982909 // empty strings for invalid keys and version ids
2799- const actualResult = await downloadCleanFile ( MOCK_VALID_UUID , versionId )
2910+ const actualResult = await downloadCleanFile (
2911+ MOCK_VALID_UUID ,
2912+ versionId ,
2913+ 'mock-bucket-name' ,
2914+ )
28002915
28012916 // Assert
28022917 expect ( awsSpy ) . toHaveBeenCalledOnce ( )
0 commit comments