@@ -58,6 +58,7 @@ function runTests({ w, isDev, domains }) {
58
58
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
59
59
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
60
60
)
61
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
61
62
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
62
63
expect ( isAnimated ( await res . buffer ( ) ) ) . toBe ( true )
63
64
} )
@@ -70,6 +71,7 @@ function runTests({ w, isDev, domains }) {
70
71
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
71
72
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
72
73
)
74
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
73
75
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
74
76
expect ( isAnimated ( await res . buffer ( ) ) ) . toBe ( true )
75
77
} )
@@ -82,6 +84,7 @@ function runTests({ w, isDev, domains }) {
82
84
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
83
85
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
84
86
)
87
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
85
88
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
86
89
expect ( isAnimated ( await res . buffer ( ) ) ) . toBe ( true )
87
90
} )
@@ -95,6 +98,9 @@ function runTests({ w, isDev, domains }) {
95
98
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
96
99
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
97
100
)
101
+ // SVG is compressible so will have accept-encoding set from
102
+ // compression
103
+ expect ( res . headers . get ( 'Vary' ) ) . toMatch ( / ^ A c c e p t ( , | $ ) / )
98
104
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
99
105
const actual = await res . text ( )
100
106
const expected = await fs . readFile (
@@ -113,6 +119,7 @@ function runTests({ w, isDev, domains }) {
113
119
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
114
120
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
115
121
)
122
+ expect ( res . headers . get ( 'Vary' ) ) . toMatch ( / ^ A c c e p t ( , | $ ) / )
116
123
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
117
124
const actual = await res . text ( )
118
125
const expected = await fs . readFile (
@@ -133,6 +140,7 @@ function runTests({ w, isDev, domains }) {
133
140
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
134
141
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
135
142
)
143
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
136
144
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
137
145
} )
138
146
@@ -147,6 +155,7 @@ function runTests({ w, isDev, domains }) {
147
155
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
148
156
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
149
157
)
158
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
150
159
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
151
160
} )
152
161
@@ -244,6 +253,7 @@ function runTests({ w, isDev, domains }) {
244
253
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
245
254
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
246
255
)
256
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
247
257
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
248
258
await expectWidth ( res , w )
249
259
} )
@@ -257,6 +267,7 @@ function runTests({ w, isDev, domains }) {
257
267
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
258
268
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
259
269
)
270
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
260
271
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
261
272
await expectWidth ( res , w )
262
273
} )
@@ -270,6 +281,7 @@ function runTests({ w, isDev, domains }) {
270
281
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
271
282
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
272
283
)
284
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
273
285
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
274
286
await expectWidth ( res , w )
275
287
} )
@@ -283,6 +295,7 @@ function runTests({ w, isDev, domains }) {
283
295
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
284
296
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
285
297
)
298
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
286
299
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
287
300
// FIXME: await expectWidth(res, w)
288
301
} )
@@ -296,6 +309,7 @@ function runTests({ w, isDev, domains }) {
296
309
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
297
310
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
298
311
)
312
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
299
313
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
300
314
// FIXME: await expectWidth(res, w)
301
315
} )
@@ -311,6 +325,7 @@ function runTests({ w, isDev, domains }) {
311
325
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
312
326
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
313
327
)
328
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
314
329
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
315
330
await expectWidth ( res , w )
316
331
} )
@@ -326,6 +341,7 @@ function runTests({ w, isDev, domains }) {
326
341
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
327
342
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
328
343
)
344
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
329
345
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
330
346
await expectWidth ( res , w )
331
347
} )
@@ -346,6 +362,7 @@ function runTests({ w, isDev, domains }) {
346
362
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
347
363
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
348
364
)
365
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
349
366
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
350
367
await expectWidth ( res , w )
351
368
} )
@@ -448,6 +465,7 @@ function runTests({ w, isDev, domains }) {
448
465
expect ( res1 . headers . get ( 'Cache-Control' ) ) . toBe (
449
466
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
450
467
)
468
+ expect ( res1 . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
451
469
const etag = res1 . headers . get ( 'Etag' )
452
470
expect ( etag ) . toBeTruthy ( )
453
471
await expectWidth ( res1 , w )
@@ -460,6 +478,7 @@ function runTests({ w, isDev, domains }) {
460
478
expect ( res2 . headers . get ( 'Cache-Control' ) ) . toBe (
461
479
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
462
480
)
481
+ expect ( res2 . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
463
482
expect ( ( await res2 . buffer ( ) ) . length ) . toBe ( 0 )
464
483
465
484
const query3 = { url : '/test.jpg' , w, q : 25 }
@@ -469,6 +488,7 @@ function runTests({ w, isDev, domains }) {
469
488
expect ( res3 . headers . get ( 'Cache-Control' ) ) . toBe (
470
489
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
471
490
)
491
+ expect ( res3 . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
472
492
expect ( res3 . headers . get ( 'Etag' ) ) . toBeTruthy ( )
473
493
expect ( res3 . headers . get ( 'Etag' ) ) . not . toBe ( etag )
474
494
await expectWidth ( res3 , w )
@@ -486,6 +506,9 @@ function runTests({ w, isDev, domains }) {
486
506
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
487
507
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
488
508
)
509
+ // bmp is compressible so will have accept-encoding set from
510
+ // compression
511
+ expect ( res . headers . get ( 'Vary' ) ) . toMatch ( / ^ A c c e p t ( , | $ ) / )
489
512
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
490
513
491
514
const json2 = await fsToJson ( imagesDir )
@@ -501,6 +524,7 @@ function runTests({ w, isDev, domains }) {
501
524
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
502
525
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
503
526
)
527
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
504
528
expect ( res . headers . get ( 'etag' ) ) . toBeTruthy ( )
505
529
await expectWidth ( res , 400 )
506
530
} )
@@ -516,6 +540,7 @@ function runTests({ w, isDev, domains }) {
516
540
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
517
541
`public, max-age=${ isDev ? 0 : 60 } , must-revalidate`
518
542
)
543
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
519
544
520
545
const png = await res . buffer ( )
521
546
@@ -540,6 +565,7 @@ function runTests({ w, isDev, domains }) {
540
565
expect ( res1 . headers . get ( 'Cache-Control' ) ) . toBe (
541
566
'public, max-age=315360000, immutable'
542
567
)
568
+ expect ( res1 . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
543
569
await expectWidth ( res1 , w )
544
570
545
571
// Ensure subsequent request also has immutable header
@@ -548,6 +574,7 @@ function runTests({ w, isDev, domains }) {
548
574
expect ( res2 . headers . get ( 'Cache-Control' ) ) . toBe (
549
575
'public, max-age=315360000, immutable'
550
576
)
577
+ expect ( res2 . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
551
578
await expectWidth ( res2 , w )
552
579
}
553
580
} )
@@ -873,6 +900,7 @@ describe('Image Optimizer', () => {
873
900
expect ( res . headers . get ( 'Cache-Control' ) ) . toBe (
874
901
`public, max-age=31536000, must-revalidate`
875
902
)
903
+ expect ( res . headers . get ( 'Vary' ) ) . toBe ( 'Accept' )
876
904
await expectWidth ( res , 64 )
877
905
} )
878
906
} )
0 commit comments