@@ -193,6 +193,7 @@ describe('headers', () => {
193
193
194
194
describe ( 'setCacheControlHeaders' , ( ) => {
195
195
const defaultUrl = 'https://example.com'
196
+ const defaultStatus = 200
196
197
197
198
describe ( 'route handler responses with a specified `revalidate` value' , ( ) => {
198
199
test ( 'should not set any headers if "cdn-cache-control" is present' , ( ) => {
@@ -204,7 +205,7 @@ describe('headers', () => {
204
205
vi . spyOn ( headers , 'set' )
205
206
206
207
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
207
- setCacheControlHeaders ( headers , request , ctx )
208
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
208
209
209
210
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
210
211
} )
@@ -218,7 +219,7 @@ describe('headers', () => {
218
219
vi . spyOn ( headers , 'set' )
219
220
220
221
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
221
- setCacheControlHeaders ( headers , request , ctx )
222
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
222
223
223
224
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
224
225
} )
@@ -232,7 +233,7 @@ describe('headers', () => {
232
233
vi . spyOn ( headers , 'set' )
233
234
234
235
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
235
- setCacheControlHeaders ( headers , request , ctx )
236
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
236
237
237
238
expect ( headers . set ) . toHaveBeenCalledTimes ( 1 )
238
239
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -251,7 +252,7 @@ describe('headers', () => {
251
252
vi . spyOn ( headers , 'set' )
252
253
253
254
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
254
- setCacheControlHeaders ( headers , request , ctx )
255
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
255
256
256
257
expect ( headers . set ) . toHaveBeenCalledTimes ( 1 )
257
258
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -267,7 +268,7 @@ describe('headers', () => {
267
268
vi . spyOn ( headers , 'set' )
268
269
269
270
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
270
- setCacheControlHeaders ( headers , request , ctx )
271
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
271
272
272
273
expect ( headers . set ) . toHaveBeenCalledTimes ( 1 )
273
274
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -283,7 +284,7 @@ describe('headers', () => {
283
284
vi . spyOn ( headers , 'set' )
284
285
285
286
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : 7200 }
286
- setCacheControlHeaders ( headers , request , ctx )
287
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
287
288
288
289
expect ( headers . set ) . toHaveBeenCalledTimes ( 1 )
289
290
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -299,7 +300,7 @@ describe('headers', () => {
299
300
vi . spyOn ( headers , 'set' )
300
301
301
302
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : 7200 }
302
- setCacheControlHeaders ( headers , request , ctx )
303
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
303
304
304
305
expect ( headers . set ) . toHaveBeenCalledTimes ( 1 )
305
306
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -315,7 +316,7 @@ describe('headers', () => {
315
316
vi . spyOn ( headers , 'set' )
316
317
317
318
const ctx : RequestContext = { ...createRequestContext ( ) , routeHandlerRevalidate : false }
318
- setCacheControlHeaders ( headers , request , ctx )
319
+ setCacheControlHeaders ( headers , defaultStatus , request , ctx )
319
320
320
321
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
321
322
} )
@@ -326,7 +327,7 @@ describe('headers', () => {
326
327
const request = new Request ( defaultUrl )
327
328
vi . spyOn ( headers , 'set' )
328
329
329
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
330
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
330
331
331
332
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
332
333
} )
@@ -339,7 +340,30 @@ describe('headers', () => {
339
340
const requestContext = createRequestContext ( )
340
341
requestContext . usedFsRead = true
341
342
342
- setCacheControlHeaders ( headers , request , requestContext , true )
343
+ setCacheControlHeaders ( headers , defaultStatus , request , requestContext )
344
+
345
+ expect ( headers . set ) . toHaveBeenNthCalledWith (
346
+ 1 ,
347
+ 'cache-control' ,
348
+ 'public, max-age=0, must-revalidate' ,
349
+ )
350
+ expect ( headers . set ) . toHaveBeenNthCalledWith (
351
+ 2 ,
352
+ 'netlify-cdn-cache-control' ,
353
+ 'max-age=31536000, durable' ,
354
+ )
355
+ } )
356
+
357
+ test ( 'should set permanent, durable "netlify-cdn-cache-control" if 404 response for URl ending in .php' , ( ) => {
358
+ const headers = new Headers ( )
359
+ const request = new Request ( 'https://example.com/admin.php' )
360
+ const status = 404
361
+ vi . spyOn ( headers , 'set' )
362
+
363
+ const requestContext = createRequestContext ( )
364
+ requestContext . usedFsRead = true
365
+
366
+ setCacheControlHeaders ( headers , status , request , requestContext )
343
367
344
368
expect ( headers . set ) . toHaveBeenNthCalledWith (
345
369
1 ,
@@ -362,7 +386,7 @@ describe('headers', () => {
362
386
const request = new Request ( defaultUrl )
363
387
vi . spyOn ( headers , 'set' )
364
388
365
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
389
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
366
390
367
391
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
368
392
} )
@@ -376,7 +400,7 @@ describe('headers', () => {
376
400
const request = new Request ( defaultUrl )
377
401
vi . spyOn ( headers , 'set' )
378
402
379
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
403
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
380
404
381
405
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
382
406
} )
@@ -389,7 +413,7 @@ describe('headers', () => {
389
413
const request = new Request ( defaultUrl )
390
414
vi . spyOn ( headers , 'set' )
391
415
392
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
416
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
393
417
394
418
expect ( headers . set ) . toHaveBeenNthCalledWith (
395
419
1 ,
@@ -411,7 +435,7 @@ describe('headers', () => {
411
435
const request = new Request ( defaultUrl , { method : 'HEAD' } )
412
436
vi . spyOn ( headers , 'set' )
413
437
414
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
438
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
415
439
416
440
expect ( headers . set ) . toHaveBeenNthCalledWith (
417
441
1 ,
@@ -433,7 +457,7 @@ describe('headers', () => {
433
457
const request = new Request ( defaultUrl , { method : 'POST' } )
434
458
vi . spyOn ( headers , 'set' )
435
459
436
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
460
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
437
461
438
462
expect ( headers . set ) . toHaveBeenCalledTimes ( 0 )
439
463
} )
@@ -446,7 +470,7 @@ describe('headers', () => {
446
470
const request = new Request ( defaultUrl )
447
471
vi . spyOn ( headers , 'set' )
448
472
449
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
473
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
450
474
451
475
expect ( headers . set ) . toHaveBeenNthCalledWith ( 1 , 'cache-control' , 'public' )
452
476
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -464,7 +488,7 @@ describe('headers', () => {
464
488
const request = new Request ( defaultUrl )
465
489
vi . spyOn ( headers , 'set' )
466
490
467
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
491
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
468
492
469
493
expect ( headers . set ) . toHaveBeenNthCalledWith ( 1 , 'cache-control' , 'max-age=604800' )
470
494
expect ( headers . set ) . toHaveBeenNthCalledWith (
@@ -482,7 +506,7 @@ describe('headers', () => {
482
506
const request = new Request ( defaultUrl )
483
507
vi . spyOn ( headers , 'set' )
484
508
485
- setCacheControlHeaders ( headers , request , createRequestContext ( ) )
509
+ setCacheControlHeaders ( headers , defaultStatus , request , createRequestContext ( ) )
486
510
487
511
expect ( headers . set ) . toHaveBeenNthCalledWith (
488
512
1 ,
0 commit comments