Skip to content

Commit

Permalink
[v0.1.10] Fix multistep test
Browse files Browse the repository at this point in the history
  • Loading branch information
siller174 committed Dec 20, 2022
1 parent 122d311 commit 9b0198b
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 0 deletions.
6 changes: 6 additions & 0 deletions asserts/json/json_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,12 @@ func TestEqual(t *testing.T) {
expression: "$.a",
expect: []byte("not_correct"),
},
{
caseName: "check 186135434",
data: `{"a":186135434, "b":{"bs":"sb"}}`,
expression: "$.a",
expect: 186135434,
},
}

for _, test := range tests {
Expand Down
65 changes: 65 additions & 0 deletions builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ import (

const defaultHTTPTimeout = 30

var (
errorFunctionIsNil = "Function must be not nil"
errorAssertIsNil = "Assert must be not nil"
)

// HTTPTestMaker is a creator tests
type HTTPTestMaker struct {
httpClient *http.Client
Expand Down Expand Up @@ -377,83 +382,143 @@ func (it *cute) ExpectJSONSchemaFile(filePath string) ExpectHTTPBuilder {
}

func (it *cute) AssertBody(asserts ...AssertBody) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertBody = append(it.tests[it.countTests].Expect.AssertBody, asserts...)

return it
}

func (it *cute) OptionalAssertBody(asserts ...AssertBody) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertBody = append(it.tests[it.countTests].Expect.AssertBody, optionalAssertBody(assert))
}

return it
}

func (it *cute) AssertHeaders(asserts ...AssertHeaders) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertHeaders = append(it.tests[it.countTests].Expect.AssertHeaders, asserts...)

return it
}

func (it *cute) OptionalAssertHeaders(asserts ...AssertHeaders) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertHeaders = append(it.tests[it.countTests].Expect.AssertHeaders, optionalAssertHeaders(assert))
}

return it
}

func (it *cute) AssertResponse(asserts ...AssertResponse) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertResponse = append(it.tests[it.countTests].Expect.AssertResponse, asserts...)

return it
}

func (it *cute) OptionalAssertResponse(asserts ...AssertResponse) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertResponse = append(it.tests[it.countTests].Expect.AssertResponse, optionalAssertResponse(assert))
}

return it
}

func (it *cute) AssertBodyT(asserts ...AssertBodyT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertBodyT = append(it.tests[it.countTests].Expect.AssertBodyT, asserts...)

return it
}

func (it *cute) OptionalAssertBodyT(asserts ...AssertBodyT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertBodyT = append(it.tests[it.countTests].Expect.AssertBodyT, optionalAssertBodyT(assert))
}

return it
}

func (it *cute) AssertHeadersT(asserts ...AssertHeadersT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertHeadersT = append(it.tests[it.countTests].Expect.AssertHeadersT, asserts...)

return it
}

func (it *cute) OptionalAssertHeadersT(asserts ...AssertHeadersT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertHeadersT = append(it.tests[it.countTests].Expect.AssertHeadersT, optionalAssertHeadersT(assert))
}

return it
}

func (it *cute) AssertResponseT(asserts ...AssertResponseT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}
}

it.tests[it.countTests].Expect.AssertResponseT = append(it.tests[it.countTests].Expect.AssertResponseT, asserts...)

return it
}

func (it *cute) OptionalAssertResponseT(asserts ...AssertResponseT) ExpectHTTPBuilder {
for _, assert := range asserts {
if assert == nil {
panic(errorAssertIsNil)
}

it.tests[it.countTests].Expect.AssertResponseT = append(it.tests[it.countTests].Expect.AssertResponseT, optionalAssertResponseT(assert))
}

Expand Down
1 change: 1 addition & 0 deletions internal/utils/body.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@ func DrainBody(body io.ReadCloser) (r1, r2 io.ReadCloser, err error) {
if err = body.Close(); err != nil {
return nil, body, err
}

return io.NopCloser(&buf), io.NopCloser(bytes.NewReader(buf.Bytes())), nil
}
12 changes: 12 additions & 0 deletions test.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,15 @@ func (it *Test) Execute(ctx context.Context, t testing.TB) ResultsHTTPBuilder {
return res
}

func (it *Test) clearFields() {
it.AllureStep = new(AllureStep)
it.Middleware = new(Middleware)
it.Expect = new(Expect)
it.Request = new(Request)
it.Request.Repeat = new(RequestRepeatPolitic)
it.Expect.JSONSchema = new(ExpectJSONSchema)
}

func (it *Test) initEmptyFields() {
it.httpClient = http.DefaultClient

Expand Down Expand Up @@ -163,6 +172,9 @@ func (it *Test) execute(ctx context.Context, allureProvider allureProvider) Resu

processTestErrors(allureProvider, errs)

// Remove from base struct all asserts
it.clearFields()

return newTestResult(name, resp, errs)
}

Expand Down

0 comments on commit 9b0198b

Please sign in to comment.