swaggest / rest

Web services with OpenAPI and JSON Schema done quick in Go
https://pkg.go.dev/github.com/swaggest/rest
MIT License
362 stars 17 forks source link

Add response header expectations to client test helper #20

Closed vearutop closed 3 years ago

github-actions[bot] commented 3 years ago

Unit Test Coverage

total: (statements) 81.1%

Coverage diff with base branch ```diff 143a144 > github.com/swaggest/rest/resttest/client.go ExpectResponseHeader 40.0% 144a146 > github.com/swaggest/rest/resttest/client.go ExpectOtherResponsesHeader 40.0% 145a148 > github.com/swaggest/rest/resttest/client.go assertResponseHeader 66.7% 168c171 < total: (statements) 81.5% --- > total: (statements) 81.1% ```
codecov[bot] commented 3 years ago

Codecov Report

Merging #20 (2e5a8bc) into master (98a77d5) will decrease coverage by 0.60%. The diff coverage is 26.31%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   73.90%   73.29%   -0.61%     
==========================================
  Files          26       26              
  Lines        1464     1483      +19     
==========================================
+ Hits         1082     1087       +5     
- Misses        241      250       +9     
- Partials      141      146       +5     
Flag Coverage Δ
unittests 73.29% <26.31%> (-0.61%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
resttest/client.go 53.84% <26.31%> (-3.49%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 98a77d5...2e5a8bc. Read the comment docs.

github-actions[bot] commented 3 years ago

Benchmark Result

Benchmark diff with base branch ``` Using vendor name time/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-2 2.15µs ±27% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-2 1.07µs ± 4% DecoderFunc_Decode-2 3.00µs ± 3% Decoder_Decode_json-2 37.7µs ± 2% Decoder_Decode_queryObject-2 7.38µs ± 2% Decoder_Decode_jsonParam-2 2.81µs ± 3% DecoderFactory_SetDecoderFunc-2 2.47µs ± 2% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-2 15.6µs ± 2% Middleware_control-2 5.05µs ± 4% name alloc/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-2 2.50kB ± 0% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-2 448B ± 0% DecoderFunc_Decode-2 1.51kB ± 0% Decoder_Decode_json-2 12.4kB ± 0% Decoder_Decode_queryObject-2 2.00kB ± 0% Decoder_Decode_jsonParam-2 752B ± 0% DecoderFactory_SetDecoderFunc-2 1.02kB ± 0% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-2 1.13kB ± 3% Middleware_control-2 11.2kB ± 0% name allocs/op pkg:github.com/swaggest/rest/jsonschema goos:linux goarch:amd64 RequestValidator_ValidateRequestData-2 8.00 ± 0% pkg:github.com/swaggest/rest/request goos:linux goarch:amd64 Decoder_Decode-2 4.00 ± 0% DecoderFunc_Decode-2 12.0 ± 0% Decoder_Decode_json-2 169 ± 0% Decoder_Decode_queryObject-2 36.0 ± 0% Decoder_Decode_jsonParam-2 12.0 ± 0% DecoderFactory_SetDecoderFunc-2 16.0 ± 0% pkg:github.com/swaggest/rest/response/gzip goos:linux goarch:amd64 Middleware-2 11.0 ± 0% Middleware_control-2 9.00 ± 0% ```

Examples Benchmark Result

Benchmark diff with base branch ``` Using vendor name time/op pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 37.4µs ± 3% _directGzipHead-2 37.7µs ± 4% _noDirectGzip-2 177µs ± 2% _directGzip_decode-2 698µs ± 2% _noDirectGzip_decode-2 177µs ± 1% _jsonBody-2 47.4µs ± 3% _jsonBodyValidation-2 79.6µs ± 2% _outputHeaders-2 36.4µs ± 3% _validation-2 76.1µs ± 4% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 48.5µs ± 4% _ok-2 51.2µs ± 4% _invalidBody-2 71.2µs ± 2% name B:rcvd/op pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 639 ± 0% _directGzipHead-2 183 ± 0% _noDirectGzip-2 1.04k ± 0% _directGzip_decode-2 639 ± 0% _noDirectGzip_decode-2 1.04k ± 0% _jsonBody-2 194 ± 0% _jsonBodyValidation-2 194 ± 0% _outputHeaders-2 155 ± 0% _validation-2 177 ± 0% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 337 ± 0% _ok-2 359 ± 0% _invalidBody-2 435 ± 0% name B:sent/op pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 103 ± 0% _directGzipHead-2 104 ± 0% _noDirectGzip-2 117 ± 0% _directGzip_decode-2 116 ± 0% _noDirectGzip_decode-2 130 ± 0% _jsonBody-2 181 ± 0% _jsonBodyValidation-2 192 ± 0% _outputHeaders-2 77.0 ± 0% _validation-2 170 ± 0% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 74.0 ± 0% _ok-2 74.0 ± 0% _invalidBody-2 137 ± 0% name rps pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 26.7k ± 3% _directGzipHead-2 26.5k ± 4% _noDirectGzip-2 5.66k ± 2% _directGzip_decode-2 1.43k ± 2% _noDirectGzip_decode-2 5.65k ± 1% _jsonBody-2 21.1k ± 3% _jsonBodyValidation-2 12.6k ± 2% _outputHeaders-2 27.5k ± 3% _validation-2 13.1k ± 4% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 20.6k ± 4% _ok-2 19.5k ± 4% _invalidBody-2 14.1k ± 2% name alloc/op pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 3.87kB ± 0% _directGzipHead-2 3.87kB ± 0% _noDirectGzip-2 6.50kB ±21% _directGzip_decode-2 403kB ± 0% _noDirectGzip_decode-2 5.24kB ± 6% _jsonBody-2 5.99kB ± 0% _jsonBodyValidation-2 18.2kB ± 0% _outputHeaders-2 3.65kB ± 0% _validation-2 16.2kB ± 0% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 5.65kB ± 0% _ok-2 5.57kB ± 0% _invalidBody-2 9.60kB ± 3% name allocs/op pkg:github.com/swaggest/rest/_examples/advanced goos:linux goarch:amd64 _directGzip-2 40.0 ± 0% _directGzipHead-2 40.0 ± 0% _noDirectGzip-2 48.0 ± 4% _directGzip_decode-2 498 ± 0% _noDirectGzip_decode-2 48.0 ± 0% _jsonBody-2 57.0 ± 0% _jsonBodyValidation-2 144 ± 0% _outputHeaders-2 35.0 ± 0% _validation-2 131 ± 0% pkg:github.com/swaggest/rest/_examples/task-api/internal/infra/nethttp goos:linux goarch:amd64 _notFoundSrv-2 63.0 ± 0% _ok-2 59.0 ± 0% _invalidBody-2 110 ± 2% ```