Skip to content

Commit a8d1370

Browse files
committed
feat: support to get headers from binary request
1 parent 0f02984 commit a8d1370

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

e2e/test-suite-common.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,32 @@ items:
163163
}
164164
}
165165
}
166+
- name: createTestCaseForBinary
167+
request:
168+
api: /suites/{{.param.suiteName}}/cases
169+
method: POST
170+
header:
171+
X-Store-Name: "{{.param.store}}"
172+
body: |
173+
{
174+
"suiteName": "{{.param.suiteName}}",
175+
"data": {
176+
"name": "binary",
177+
"request": {
178+
"api": "{{.param.server}}/get",
179+
"method": "GET"
180+
}
181+
}
182+
}
183+
- name: runBinaryCase
184+
request:
185+
api: /suites/{{.param.suiteName}}/cases/binary/run
186+
method: POST
187+
header:
188+
X-Store-Name: "{{.param.store}}"
189+
expect:
190+
header:
191+
Content-Type: application/octet-stream
166192
- name: getTestCase
167193
request:
168194
api: /suites/{{.param.suiteName}}/cases/{{.param.caseName}}

pkg/runner/http.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,11 @@ func (r *simpleTestCaseRunner) RunTestCase(testcase *testing.TestCase, dataConte
206206

207207
respType := util.GetFirstHeaderValue(resp.Header, util.ContentType)
208208

209+
r.withSimpleResponseRecord(resp)
209210
if isNonBinaryContent(respType) {
210211
var responseBodyData []byte
211212
var rErr error
212-
if responseBodyData, rErr = r.withResponseRecord(resp); rErr != nil {
213+
if responseBodyData, rErr = r.withResponseBodyRecord(resp); rErr != nil {
213214
err = errors.Join(err, rErr)
214215
return
215216
}
@@ -300,19 +301,23 @@ func generateRandomValue(param spec.Parameter) interface{} {
300301
}
301302
}
302303

303-
func (r *simpleTestCaseRunner) withResponseRecord(resp *http.Response) (responseBodyData []byte, err error) {
304-
responseBodyData, err = io.ReadAll(resp.Body)
304+
func (r *simpleTestCaseRunner) withSimpleResponseRecord(resp *http.Response) {
305305
r.simpleResponse = SimpleResponse{
306306
StatusCode: resp.StatusCode,
307307
Header: make(map[string]string),
308-
Body: string(responseBodyData),
309308
}
310309

311-
// add some headers for convienience
312-
ammendHeaders(resp.Header, responseBodyData)
313310
for key := range resp.Header {
314311
r.simpleResponse.Header[key] = resp.Header.Get(key)
315312
}
313+
}
314+
315+
func (r *simpleTestCaseRunner) withResponseBodyRecord(resp *http.Response) (responseBodyData []byte, err error) {
316+
responseBodyData, err = io.ReadAll(resp.Body)
317+
r.simpleResponse.Body = string(responseBodyData)
318+
319+
// add some headers for convenience
320+
ammendHeaders(resp.Header, responseBodyData)
316321
return
317322
}
318323

tools/make/run.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ run-server: ## Run the API Testing server
1313
run-server: build-ui run-backend
1414
run-backend:
1515
go run . server --local-storage 'bin/*.yaml' --console-path ${ATEST_UI}/dist \
16-
--mock-config bin/mock.yaml \
1716
--extension-registry ghcr.io --download-timeout 90s
1817

1918
.PHONY: run-console

0 commit comments

Comments
 (0)