@@ -23,26 +23,28 @@ test('polls SFTP folder', async () => {
2323 exists : async ( path : string ) => {
2424 const existsMappings : Record < string , FileInfo [ 'type' ] > = {
2525 'download-dir/sftp-environment/proofs' : directoryType ,
26- 'download-dir/sftp-environment/proofs/template-1-folder' : directoryType ,
26+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0' :
27+ directoryType ,
2728 } ;
2829
2930 return existsMappings [ path ] ?? false ;
3031 } ,
3132 get : async ( path : string ) => {
3233 if (
3334 path ===
34- 'download-dir/sftp-environment/proofs/template-1-folder /download-error.pdf'
35+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0 /download-error.pdf'
3536 ) {
3637 throw downloadError ;
3738 }
3839
3940 const buffer = {
40- 'download-dir/sftp-environment/proofs/template-3.pdf' : mockPdfBuffer ,
41- 'download-dir/sftp-environment/proofs/template-1-folder/template-1.pdf' :
41+ 'download-dir/sftp-environment/proofs/client2_campaign2_template-3_zh_x1' :
4242 mockPdfBuffer ,
43- 'download-dir/sftp-environment/proofs/template-1-folder/template-2 .pdf' :
43+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0/proof-1 .pdf' :
4444 mockPdfBuffer ,
45- 'download-dir/sftp-environment/proofs/template-1-folder/invalid-file.pdf' :
45+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0/proof-2.pdf' :
46+ mockPdfBuffer ,
47+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0/invalid-file.pdf' :
4648 mockMalformedPdfBuffer ,
4749 } [ path ] ;
4850
@@ -56,7 +58,7 @@ test('polls SFTP folder', async () => {
5658 ( {
5759 'download-dir/sftp-environment/proofs' : [
5860 {
59- name : 'template-1-folder ' ,
61+ name : 'client_campaign_template-1_en_x0 ' ,
6062 type : directoryType ,
6163 modifyTime : Date . now ( ) ,
6264 } ,
@@ -66,38 +68,39 @@ test('polls SFTP folder', async () => {
6668 modifyTime : Date . now ( ) ,
6769 } ,
6870 {
69- name : 'folder-does-not-exist' ,
70- type : directoryType ,
71- modifyTime : Date . now ( ) ,
72- } ,
73- ] ,
74- 'download-dir/sftp-environment/proofs/template-1-folder' : [
75- {
76- name : 'template-1.pdf' ,
77- type : fileType ,
78- modifyTime : Date . now ( ) ,
79- } ,
80- {
81- name : 'template-2.pdf' ,
82- type : fileType ,
83- modifyTime : Date . now ( ) ,
84- } ,
85- {
86- name : 'invalid-file.pdf' ,
87- type : fileType ,
88- modifyTime : Date . now ( ) ,
89- } ,
90- {
91- name : 'download-error.pdf' ,
92- type : fileType ,
93- modifyTime : Date . now ( ) ,
94- } ,
95- {
96- name : 'extra-folder-to-ignore' ,
71+ name : 'client3_campaign3_template-5_de_q1' ,
9772 type : directoryType ,
9873 modifyTime : Date . now ( ) ,
9974 } ,
10075 ] ,
76+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0' :
77+ [
78+ {
79+ name : 'proof-1.pdf' ,
80+ type : fileType ,
81+ modifyTime : Date . now ( ) ,
82+ } ,
83+ {
84+ name : 'proof-2.pdf' ,
85+ type : fileType ,
86+ modifyTime : Date . now ( ) ,
87+ } ,
88+ {
89+ name : 'invalid-file.pdf' ,
90+ type : fileType ,
91+ modifyTime : Date . now ( ) ,
92+ } ,
93+ {
94+ name : 'download-error.pdf' ,
95+ type : fileType ,
96+ modifyTime : Date . now ( ) ,
97+ } ,
98+ {
99+ name : 'extra-folder-to-ignore' ,
100+ type : directoryType ,
101+ modifyTime : Date . now ( ) ,
102+ } ,
103+ ] ,
101104 } ) [ path ] ?? [ ] ,
102105 } ) ;
103106
@@ -125,33 +128,34 @@ test('polls SFTP folder', async () => {
125128 expect ( s3Repository . putRawData ) . toHaveBeenCalledTimes ( 2 ) ;
126129 expect ( s3Repository . putRawData ) . toHaveBeenCalledWith (
127130 mockPdfBuffer ,
128- 'proofs/supplier/template-1-folder/template -1.pdf'
131+ 'proofs/supplier/template-1/proof -1.pdf'
129132 ) ;
130133 expect ( s3Repository . putRawData ) . toHaveBeenCalledWith (
131134 mockPdfBuffer ,
132- 'proofs/supplier/template-1-folder/template -2.pdf'
135+ 'proofs/supplier/template-1/proof -2.pdf'
133136 ) ;
134137
135- expect ( mockLogger . logMessages ) . toContainEqual ( {
136- level : 'error' ,
137- message : {
138- description : 'PDF file failed validation' ,
138+ expect ( mockLogger . logMessages ) . toContainEqual (
139+ expect . objectContaining ( {
140+ level : 'error' ,
141+ message : 'PDF file failed validation' ,
139142 sftpPath :
140- 'download-dir/sftp-environment/proofs/template-1-folder/invalid-file.pdf' ,
141- s3Path : 'proofs/supplier/template-1-folder/invalid-file.pdf' ,
142- } ,
143- timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
144- } ) ;
145- expect ( mockLogger . logMessages ) . toContainEqual ( {
146- level : 'error' ,
147- description : 'Failed to process file' ,
148- sftpPath :
149- 'download-dir/sftp-environment/proofs/template-1-folder/download-error.pdf' ,
150- s3Path : 'proofs/supplier/template-1-folder/download-error.pdf' ,
151- timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
152- stack : expect . stringContaining ( 'Error: Download error' ) ,
153- message : 'Download error' ,
154- } ) ;
143+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0/invalid-file.pdf' ,
144+ s3Path : 'proofs/supplier/template-1/invalid-file.pdf' ,
145+ timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
146+ } )
147+ ) ;
148+ expect ( mockLogger . logMessages ) . toContainEqual (
149+ expect . objectContaining ( {
150+ level : 'error' ,
151+ sftpPath :
152+ 'download-dir/sftp-environment/proofs/client_campaign_template-1_en_x0/download-error.pdf' ,
153+ s3Path : 'proofs/supplier/template-1/download-error.pdf' ,
154+ timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
155+ stack : expect . stringContaining ( 'Error: Download error' ) ,
156+ message : 'Failed to process file Download error' ,
157+ } )
158+ ) ;
155159
156160 expect ( sftpClient . connect ) . toHaveBeenCalledTimes ( 1 ) ;
157161 expect ( sftpClient . end ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -187,11 +191,14 @@ test('attempts to poll folder that does not exist', async () => {
187191
188192 expect ( sftpClient . list ) . not . toHaveBeenCalled ( ) ;
189193
190- expect ( mockLogger . logMessages ) . toContainEqual ( {
191- level : 'info' ,
192- message : "Path 'download-dir/sftp-environment/proofs' does not exist" ,
193- timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
194- } ) ;
194+ expect ( mockLogger . logMessages ) . toContainEqual (
195+ expect . objectContaining ( {
196+ level : 'info' ,
197+ baseSftpPath : 'download-dir/sftp-environment/proofs' ,
198+ message : 'Base SFTP path does not exist' ,
199+ timestamp : new Date ( '2022-01-01 09:00' ) . toISOString ( ) ,
200+ } )
201+ ) ;
195202
196203 expect ( sftpClient . connect ) . toHaveBeenCalledTimes ( 1 ) ;
197204 expect ( sftpClient . end ) . toHaveBeenCalledTimes ( 1 ) ;
0 commit comments