@@ -131,8 +131,12 @@ func evaluateHTTPRequestTests(stepIndex int, req api.CLIStepHTTPRequest, result
131131 if strings .Contains (result .BodyString , needle ) {
132132 err = fmt .Errorf ("expected response body to not contain %q" , needle )
133133 }
134+ case test .HeadersEqual != nil :
135+ err = evaluateHeaderEquals (result .ResponseHeaders , * test .HeadersEqual , result .Variables , "header" )
134136 case test .HeadersContain != nil :
135137 err = evaluateHeaderContains (result .ResponseHeaders , * test .HeadersContain , result .Variables , "header" )
138+ case test .TrailersEqual != nil :
139+ err = evaluateHeaderEquals (result .ResponseTrailers , * test .TrailersEqual , result .Variables , "trailer" )
136140 case test .TrailersContain != nil :
137141 err = evaluateHeaderContains (result .ResponseTrailers , * test .TrailersContain , result .Variables , "trailer" )
138142 case test .JSONValue != nil :
@@ -185,6 +189,21 @@ func evaluateHTTPRequestTests(stepIndex int, req api.CLIStepHTTPRequest, result
185189 return nil
186190}
187191
192+ func evaluateHeaderEquals (headers map [string ]string , test api.HTTPRequestTestHeader , variables map [string ]string , label string ) error {
193+ key := InterpolateVariables (test .Key , variables )
194+ want := InterpolateVariables (test .Value , variables )
195+
196+ got , ok := findHeaderValue (headers , key )
197+ if ! ok {
198+ return fmt .Errorf ("expected %s %q to exist" , label , key )
199+ }
200+ if ! strings .EqualFold (got , want ) {
201+ return fmt .Errorf ("expected %s %q to equal %q, got %q" , label , key , want , got )
202+ }
203+
204+ return nil
205+ }
206+
188207func evaluateHeaderContains (headers map [string ]string , test api.HTTPRequestTestHeader , variables map [string ]string , label string ) error {
189208 key := InterpolateVariables (test .Key , variables )
190209 want := InterpolateVariables (test .Value , variables )
@@ -193,7 +212,7 @@ func evaluateHeaderContains(headers map[string]string, test api.HTTPRequestTestH
193212 if ! ok {
194213 return fmt .Errorf ("expected %s %q to exist" , label , key )
195214 }
196- if ! strings .Contains (got , want ) {
215+ if ! strings .Contains (strings . ToLower ( got ), strings . ToLower ( want ) ) {
197216 return fmt .Errorf ("expected %s %q to contain %q, got %q" , label , key , want , got )
198217 }
199218
0 commit comments