@@ -107,6 +107,68 @@ func TestEvaluateStdoutJq(t *testing.T) {
107107 }
108108}
109109
110+ func TestEvaluateHTTPRequestTestsHeaderAndTrailerEquality (t * testing.T ) {
111+ tests := []struct {
112+ name string
113+ test api.HTTPRequestTest
114+ result api.HTTPRequestResult
115+ wantFailure bool
116+ }{
117+ {
118+ name : "header name is case insensitive" ,
119+ test : api.HTTPRequestTest {HeadersEqual : & api.HTTPRequestTestHeader {
120+ Key : "X-Request-ID" ,
121+ Value : "abc123" ,
122+ }},
123+ result : api.HTTPRequestResult {
124+ ResponseHeaders : map [string ]string {"x-request-id" : "abc123" },
125+ },
126+ },
127+ {
128+ name : "header value is case sensitive" ,
129+ test : api.HTTPRequestTest {HeadersEqual : & api.HTTPRequestTestHeader {
130+ Key : "X-Request-ID" ,
131+ Value : "abc123" ,
132+ }},
133+ result : api.HTTPRequestResult {
134+ ResponseHeaders : map [string ]string {"X-Request-ID" : "ABC123" },
135+ },
136+ wantFailure : true ,
137+ },
138+ {
139+ name : "trailer name is case insensitive" ,
140+ test : api.HTTPRequestTest {TrailersEqual : & api.HTTPRequestTestHeader {
141+ Key : "X-Checksum" ,
142+ Value : "sha256:abc" ,
143+ }},
144+ result : api.HTTPRequestResult {
145+ ResponseTrailers : map [string ]string {"x-checksum" : "sha256:abc" },
146+ },
147+ },
148+ {
149+ name : "trailer value is case sensitive" ,
150+ test : api.HTTPRequestTest {TrailersEqual : & api.HTTPRequestTestHeader {
151+ Key : "X-Checksum" ,
152+ Value : "sha256:abc" ,
153+ }},
154+ result : api.HTTPRequestResult {
155+ ResponseTrailers : map [string ]string {"X-Checksum" : "SHA256:ABC" },
156+ },
157+ wantFailure : true ,
158+ },
159+ }
160+
161+ for _ , tt := range tests {
162+ t .Run (tt .name , func (t * testing.T ) {
163+ request := api.CLIStepHTTPRequest {Tests : []api.HTTPRequestTest {tt .test }}
164+ failure := evaluateHTTPRequestTests (0 , request , tt .result )
165+ if (failure != nil ) != tt .wantFailure {
166+ t .Fatalf ("failure = %#v, wantFailure = %t" , failure , tt .wantFailure )
167+ }
168+ })
169+ }
170+ }
171+
110172func TestLocalSubmissionEventRejectsMissingHTTPResponseCaptures (t * testing.T ) {
111173 tests := []struct {
112174 name string
0 commit comments