@@ -13,6 +13,7 @@ describe('constructor', () => {
13
13
const projectDir = await fixture . create ( )
14
14
15
15
const handler = new HeadersHandler ( {
16
+ logger : console ,
16
17
projectDir,
17
18
publishDir : '.' , // resolves to the same path as `projectDir`
18
19
configHeaders : [ { for : '/test-*' , values : { 'X-Config-Header' : 'config-value' } } ] ,
@@ -24,12 +25,13 @@ describe('constructor', () => {
24
25
} )
25
26
} )
26
27
27
- describe ( 'handle ' , ( ) => {
28
+ describe ( 'apply ' , ( ) => {
28
29
test ( 'sets response headers matching rules in provided `configHeaders`' , async ( ) => {
29
30
const fixture = new Fixture ( )
30
31
const projectDir = await fixture . create ( )
31
32
32
33
const handler = new HeadersHandler ( {
34
+ logger : console ,
33
35
projectDir,
34
36
configHeaders : [ { for : '/test-*' , values : { 'X-Config-Header' : 'config-value' } } ] ,
35
37
} )
@@ -39,10 +41,11 @@ describe('handle', () => {
39
41
'Existing-Header' : 'existing-value' ,
40
42
} ,
41
43
} )
42
- const result = await handler . handle ( request , response )
44
+ const result = await handler . apply ( request , response )
43
45
44
- expect ( result . headers . get ( 'X-Config-Header' ) ) . toBe ( 'config-value' )
45
- expect ( result . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
46
+ expect ( result ) . toStrictEqual ( { 'X-Config-Header' : 'config-value' } )
47
+ expect ( response . headers . get ( 'X-Config-Header' ) ) . toBe ( 'config-value' )
48
+ expect ( response . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
46
49
47
50
await fixture . destroy ( )
48
51
} )
@@ -53,6 +56,7 @@ describe('handle', () => {
53
56
} )
54
57
const projectDir = await fixture . create ( )
55
58
const handler = new HeadersHandler ( {
59
+ logger : console ,
56
60
projectDir,
57
61
configHeaders : undefined ,
58
62
} )
@@ -63,10 +67,11 @@ describe('handle', () => {
63
67
'Existing-Header' : 'existing-value' ,
64
68
} ,
65
69
} )
66
- const result = await handler . handle ( request , response )
70
+ const result = await handler . apply ( request , response )
67
71
68
- expect ( result . headers . get ( 'X-Project-Dir-Header' ) ) . toBe ( 'project-dir-value' )
69
- expect ( result . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
72
+ expect ( result ) . toStrictEqual ( { 'X-Project-Dir-Header' : 'project-dir-value' } )
73
+ expect ( response . headers . get ( 'X-Project-Dir-Header' ) ) . toBe ( 'project-dir-value' )
74
+ expect ( response . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
70
75
71
76
await fixture . destroy ( )
72
77
} )
@@ -79,6 +84,7 @@ describe('handle', () => {
79
84
const projectDir = await fixture . create ( )
80
85
81
86
const handler = new HeadersHandler ( {
87
+ logger : console ,
82
88
projectDir,
83
89
publishDir : 'my-dist' ,
84
90
configHeaders : undefined ,
@@ -89,10 +95,11 @@ describe('handle', () => {
89
95
'Existing-Header' : 'existing-value' ,
90
96
} ,
91
97
} )
92
- const result = await handler . handle ( request , response )
98
+ const result = await handler . apply ( request , response )
93
99
94
- expect ( result . headers . get ( 'X-Publish-Dir-Header' ) ) . toBe ( 'publish-dir-value' )
95
- expect ( result . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
100
+ expect ( result ) . toStrictEqual ( { 'X-Publish-Dir-Header' : 'publish-dir-value' } )
101
+ expect ( response . headers . get ( 'X-Publish-Dir-Header' ) ) . toBe ( 'publish-dir-value' )
102
+ expect ( response . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
96
103
97
104
await fixture . destroy ( )
98
105
} )
@@ -108,6 +115,7 @@ describe('handle', () => {
108
115
} )
109
116
const projectDir = await fixture . create ( )
110
117
const handler = new HeadersHandler ( {
118
+ logger : console ,
111
119
projectDir,
112
120
publishDir : 'my-dist' ,
113
121
configHeaders : [ { for : '/test-pa*' , values : { 'X-Config-Header' : 'config-value' } } ] ,
@@ -119,12 +127,22 @@ describe('handle', () => {
119
127
'Existing-Header' : 'existing-value' ,
120
128
} ,
121
129
} )
122
- const result = await handler . handle ( request , response )
130
+ const expected = {
131
+ 'X-Project-Dir-Header' : 'project-dir-value' ,
132
+ 'X-Publish-Dir-Header' : 'publish-dir-value' ,
133
+ 'X-Config-Header' : 'config-value' ,
134
+ }
135
+ const collected : Record < string , string > = { }
136
+ const result = await handler . apply ( request , response , ( key , value ) => {
137
+ collected [ key ] = value
138
+ } )
123
139
124
- expect ( result . headers . get ( 'X-Project-Dir-Header' ) ) . toBe ( 'project-dir-value' )
125
- expect ( result . headers . get ( 'X-Publish-Dir-Header' ) ) . toBe ( 'publish-dir-value' )
126
- expect ( result . headers . get ( 'X-Config-Header' ) ) . toBe ( 'config-value' )
127
- expect ( result . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
140
+ expect ( result ) . toStrictEqual ( expected )
141
+ expect ( collected ) . toStrictEqual ( expected )
142
+ expect ( response . headers . get ( 'X-Project-Dir-Header' ) ) . toBe ( 'project-dir-value' )
143
+ expect ( response . headers . get ( 'X-Publish-Dir-Header' ) ) . toBe ( 'publish-dir-value' )
144
+ expect ( response . headers . get ( 'X-Config-Header' ) ) . toBe ( 'config-value' )
145
+ expect ( response . headers . get ( 'Existing-Header' ) ) . toBe ( 'existing-value' )
128
146
129
147
await fixture . destroy ( )
130
148
} )
@@ -135,6 +153,7 @@ describe('handle', () => {
135
153
} )
136
154
const projectDir = await fixture . create ( )
137
155
const handler = new HeadersHandler ( {
156
+ logger : console ,
138
157
projectDir,
139
158
configHeaders : [ { for : '/no-match' , values : { 'X-Config-Header' : 'no-match-value' } } ] ,
140
159
} )
@@ -146,9 +165,10 @@ describe('handle', () => {
146
165
} ,
147
166
} )
148
167
const originalHeaders = new Headers ( response . headers )
149
- const result = await handler . handle ( request , response )
168
+ const result = await handler . apply ( request , response )
150
169
151
- expect ( result . headers ) . toEqual ( originalHeaders )
170
+ expect ( result ) . toStrictEqual ( { } )
171
+ expect ( response . headers ) . toEqual ( originalHeaders )
152
172
153
173
await fixture . destroy ( )
154
174
} )
0 commit comments