Skip to content

Commit dfd93cb

Browse files
tighten headersEqual, trailersEqual slightly
1 parent a2470ec commit dfd93cb

2 files changed

Lines changed: 63 additions & 1 deletion

File tree

checks/local.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ func evaluateHeaderEquals(headers map[string]string, test api.HTTPRequestTestHea
197197
if !ok {
198198
return fmt.Errorf("expected %s %q to exist", label, key)
199199
}
200-
if !strings.EqualFold(got, want) {
200+
if got != want {
201201
return fmt.Errorf("expected %s %q to equal %q, got %q", label, key, want, got)
202202
}
203203

checks/local_test.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
110172
func TestLocalSubmissionEventRejectsMissingHTTPResponseCaptures(t *testing.T) {
111173
tests := []struct {
112174
name string

0 commit comments

Comments
 (0)