diff --git a/builder_asserts.go b/builder_asserts.go index 343625e..6d9b072 100644 --- a/builder_asserts.go +++ b/builder_asserts.go @@ -367,3 +367,27 @@ func (qt *cute) ExpectJSONSchemaFile(filePath string) ExpectHTTPBuilder { return qt } + +func (qt *cute) HideBody() ExpectHTTPBuilder { + qt.tests[qt.countTests].HideBody = true + + return qt +} + +func (qt *cute) HideHeaders() ExpectHTTPBuilder { + qt.tests[qt.countTests].HideHeaders = true + + return qt +} + +func (qt *cute) HideResponse() ExpectHTTPBuilder { + qt.tests[qt.countTests].HideResponse = true + + return qt +} + +func (qt *cute) HideResponseHeaders() ExpectHTTPBuilder { + qt.tests[qt.countTests].HideResponseHeaders = true + + return qt +} diff --git a/interface.go b/interface.go index 4af22d4..9fe2703 100644 --- a/interface.go +++ b/interface.go @@ -296,6 +296,15 @@ type ExpectHTTPBuilder interface { // Mark in allure as Broken BrokenAssertResponseT(asserts ...AssertResponseT) ExpectHTTPBuilder + // HideBody is function for hide request body. + HideBody() ExpectHTTPBuilder + // HideHeaders is function for hide request headers. + HideHeaders() ExpectHTTPBuilder + // HideResponse is function for hide response body. + HideResponse() ExpectHTTPBuilder + // HideResponseHeaders is function for hide response headers. + HideResponseHeaders() ExpectHTTPBuilder + After ControlTest } diff --git a/roundtripper.go b/roundtripper.go index 5a75fd4..0f90aac 100644 --- a/roundtripper.go +++ b/roundtripper.go @@ -144,21 +144,29 @@ func (it *Test) addInformationRequest(t T, req *http.Request) error { it.Info(t, "[Request] Do request") } - // Do not change to JSONMarshaler - // In this case we can keep default for keep JSON, independence from JSONMarshaler - headers, err := utils.ToJSON(req.Header) - if err != nil { - return err + t.WithNewParameters( + "method", req.Method, + "host", req.Host, + ) + + if !it.HideHeaders { + // Do not change to JSONMarshaler + // In this case we can keep default for keep JSON, independence from JSONMarshaler + headers, err := utils.ToJSON(req.Header) + if err != nil { + return err + } + + t.WithNewParameters("headers", headers) } - t.WithParameters( - allure.NewParameters( - "method", req.Method, - "host", req.Host, - "headers", headers, - "curl", curl.String(), - )..., - ) + if it.HideBody { + return nil + } + + if !it.HideBody && !it.HideHeaders { + t.WithNewParameters("curl", curl.String()) + } if req.Body != nil { saveBody, req.Body, err = utils.DrainBody(req.Body) @@ -200,15 +208,17 @@ func (it *Test) addInformationResponse(t T, response *http.Response) error { err error ) - headers, _ := utils.ToJSON(response.Header) - if headers != "" { - t.WithNewParameters("response_headers", headers) + if !it.HideResponseHeaders { + headers, _ := utils.ToJSON(response.Header) + if headers != "" { + t.WithNewParameters("response_headers", headers) + } } t.WithNewParameters("response_code", fmt.Sprint(response.StatusCode)) it.Info(t, "[Response] Status: "+response.Status) - if response.Body == nil { + if it.HideResponse || response.Body == nil { return nil } diff --git a/test.go b/test.go index 975329a..26d7058 100644 --- a/test.go +++ b/test.go @@ -40,6 +40,11 @@ type Test struct { Middleware *Middleware Request *Request Expect *Expect + + HideBody bool + HideHeaders bool + HideResponse bool + HideResponseHeaders bool } // Request is struct with HTTP request. @@ -200,7 +205,6 @@ func (it *Test) executeInsideAllure(ctx context.Context, allureProvider allurePr // Execute test inside step resp, errs = it.startTestWithStep(ctx, allureProvider) } else { - // Execute Test resp, errs = it.startTest(ctx, allureProvider) } @@ -470,7 +474,6 @@ func (it *Test) buildRequest(ctx context.Context) (*http.Request, error) { body := o.body if o.bodyMarshal != nil { body, err = it.jsonMarshaler.Marshal(o.bodyMarshal) - if err != nil { return nil, err }