@@ -97,7 +97,10 @@ describe('Image Processing Integration', () => {
9797 } ) ;
9898
9999 test ( 'should process a simple JPEG without transformations' , async ( ) => {
100- const event = createCloudFrontEvent ( { uri : '/test-image.jpg' } ) ;
100+ const event = createCloudFrontEvent ( {
101+ uri : '/test-image.jpg' ,
102+ region : 'us-west-2' ,
103+ } ) ;
101104
102105 const callback = jest . fn ( ) ;
103106
@@ -117,12 +120,15 @@ describe('Image Processing Integration', () => {
117120 expect ( metadata . format ) . toBe ( 'jpeg' ) ;
118121 expect ( metadata . width ) . toBe ( 300 ) ;
119122 expect ( metadata . height ) . toBe ( 200 ) ;
123+
124+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
120125 } ) ;
121126
122127 test ( 'should resize JPEG image with width parameter' , async ( ) => {
123128 const event = createCloudFrontEvent ( {
124129 uri : '/test-image.jpg' ,
125130 querystring : 'width=150' ,
131+ region : 'us-west-2' ,
126132 } ) ;
127133
128134 const callback = jest . fn ( ) ;
@@ -142,6 +148,8 @@ describe('Image Processing Integration', () => {
142148 expect ( metadata . format ) . toBe ( 'jpeg' ) ;
143149 expect ( metadata . width ) . toBe ( 150 ) ;
144150 expect ( metadata . height ) . toBe ( 100 ) ;
151+
152+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
145153 } ) ;
146154
147155 test ( 'should convert to WebP when Accept header includes webp' , async ( ) => {
@@ -150,6 +158,7 @@ describe('Image Processing Integration', () => {
150158 headers : {
151159 accept : [ { key : 'Accept' , value : 'image/webp,image/*' } ] ,
152160 } ,
161+ region : 'us-west-2' ,
153162 } ) ;
154163
155164 const callback = jest . fn ( ) ;
@@ -173,11 +182,14 @@ describe('Image Processing Integration', () => {
173182 expect ( metadata . format ) . toBe ( 'webp' ) ;
174183 expect ( metadata . width ) . toBe ( 300 ) ;
175184 expect ( metadata . height ) . toBe ( 200 ) ;
185+
186+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
176187 } ) ;
177188
178189 test ( 'should convert GIF to PNG format' , async ( ) => {
179190 const event = createCloudFrontEvent ( {
180191 uri : '/test-image.gif' ,
192+ region : 'us-west-2' ,
181193 } ) ;
182194
183195 const callback = jest . fn ( ) ;
@@ -199,6 +211,8 @@ describe('Image Processing Integration', () => {
199211 expect ( metadata . format ) . toBe ( 'png' ) ;
200212 expect ( metadata . width ) . toBe ( 200 ) ;
201213 expect ( metadata . height ) . toBe ( 200 ) ;
214+
215+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
202216 } ) ;
203217
204218 test ( 'should apply custom quality when parameter is provided' , async ( ) => {
@@ -208,6 +222,7 @@ describe('Image Processing Integration', () => {
208222 headers : {
209223 accept : [ { key : 'Accept' , value : 'image/webp,image/*' } ] ,
210224 } ,
225+ region : 'us-west-2' ,
211226 } ) ;
212227
213228 const callback = jest . fn ( ) ;
@@ -227,6 +242,8 @@ describe('Image Processing Integration', () => {
227242 expect ( metadata . format ) . toBe ( 'webp' ) ;
228243 expect ( metadata . width ) . toBe ( 300 ) ;
229244 expect ( metadata . height ) . toBe ( 200 ) ;
245+
246+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
230247 } ) ;
231248
232249 test ( 'should combine multiple transformations' , async ( ) => {
@@ -236,6 +253,7 @@ describe('Image Processing Integration', () => {
236253 headers : {
237254 accept : [ { key : 'Accept' , value : 'image/webp,image/*' } ] ,
238255 } ,
256+ region : 'us-west-2' ,
239257 } ) ;
240258
241259 const callback = jest . fn ( ) ;
@@ -255,10 +273,15 @@ describe('Image Processing Integration', () => {
255273 expect ( metadata . format ) . toBe ( 'webp' ) ;
256274 expect ( metadata . width ) . toBe ( 250 ) ;
257275 expect ( metadata . height ) . toBe ( Math . round ( 200 * ( 250 / 300 ) ) ) ;
276+
277+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
258278 } ) ;
259279
260280 test ( 'should not process animated GIFs' , async ( ) => {
261- const event = createCloudFrontEvent ( { uri : '/animated.gif' } ) ;
281+ const event = createCloudFrontEvent ( {
282+ uri : '/animated.gif' ,
283+ region : 'us-west-2' ,
284+ } ) ;
262285 const originalResponse = event . Records [ 0 ] . cf . response ;
263286
264287 const callback = jest . fn ( ) ;
@@ -268,12 +291,15 @@ describe('Image Processing Integration', () => {
268291
269292 expect ( callback . mock . calls [ 0 ] [ 1 ] ) . toBe ( originalResponse ) ;
270293 expect ( callback . mock . calls [ 0 ] [ 1 ] . bodyEncoding ) . toBeUndefined ( ) ;
294+
295+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
271296 } ) ;
272297
273298 test ( 'should not process a GIF when format=original is specified' , async ( ) => {
274299 const event = createCloudFrontEvent ( {
275300 uri : '/test-image.gif' ,
276301 querystring : 'format=original' ,
302+ region : 'us-west-2' ,
277303 } ) ;
278304 const originalResponse = event . Records [ 0 ] . cf . response ;
279305
@@ -284,6 +310,8 @@ describe('Image Processing Integration', () => {
284310
285311 expect ( callback . mock . calls [ 0 ] [ 1 ] ) . toBe ( originalResponse ) ;
286312 expect ( callback . mock . calls [ 0 ] [ 1 ] . bodyEncoding ) . toBeUndefined ( ) ;
313+
314+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
287315 } ) ;
288316
289317 test ( 'should preserve original JPEG format when format=original is specified, even with WebP Accept header' , async ( ) => {
@@ -293,6 +321,7 @@ describe('Image Processing Integration', () => {
293321 headers : {
294322 accept : [ { key : 'Accept' , value : 'image/webp,image/*' } ] ,
295323 } ,
324+ region : 'us-west-2' ,
296325 } ) ;
297326
298327 const callback = jest . fn ( ) ;
@@ -313,6 +342,8 @@ describe('Image Processing Integration', () => {
313342 const metadata = await sharp ( responseBuffer ) . metadata ( ) ;
314343
315344 expect ( metadata . format ) . toBe ( 'jpeg' ) ;
345+
346+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
316347 } ) ;
317348
318349 test ( 'should preserve original JPEG format when format=original is specified with resize parameters, even with WebP Accept header' , async ( ) => {
@@ -322,6 +353,7 @@ describe('Image Processing Integration', () => {
322353 headers : {
323354 accept : [ { key : 'Accept' , value : 'image/webp,image/*' } ] ,
324355 } ,
356+ region : 'us-west-2' ,
325357 } ) ;
326358
327359 const callback = jest . fn ( ) ;
@@ -344,12 +376,15 @@ describe('Image Processing Integration', () => {
344376 expect ( metadata . format ) . toBe ( 'jpeg' ) ;
345377 expect ( metadata . width ) . toBe ( 150 ) ;
346378 expect ( metadata . height ) . toBe ( 100 ) ;
379+
380+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
347381 } ) ;
348382
349383 test ( 'should force conversion to specific format when explicitly requested' , async ( ) => {
350384 const event = createCloudFrontEvent ( {
351385 uri : '/test-image.jpg' ,
352386 querystring : 'format=webp' ,
387+ region : 'us-west-2' ,
353388 } ) ;
354389
355390 const callback = jest . fn ( ) ;
@@ -367,5 +402,7 @@ describe('Image Processing Integration', () => {
367402 const metadata = await sharp ( responseBuffer ) . metadata ( ) ;
368403
369404 expect ( metadata . format ) . toBe ( 'webp' ) ;
405+
406+ expect ( lastS3ClientOptions . region ) . toBe ( 'us-west-2' ) ;
370407 } ) ;
371408} ) ;
0 commit comments