From 6e59f20c0d3883d2bdc589a9e48374ea30601851 Mon Sep 17 00:00:00 2001 From: Arjun Mahishi Date: Fri, 23 Feb 2024 22:41:24 +0530 Subject: [PATCH] http_assertions: assert that the msgAndArgs actually works in tests This commit also adds the method `Failed() bool` to the mockTestingT struct. This is usefull for asserting failure in tests --- assert/assertions_test.go | 4 ++++ assert/http_assertions_test.go | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/assert/assertions_test.go b/assert/assertions_test.go index d564b3c61..1cc51eb5f 100644 --- a/assert/assertions_test.go +++ b/assert/assertions_test.go @@ -2514,6 +2514,10 @@ func (m *mockTestingT) Errorf(format string, args ...interface{}) { m.args = args } +func (m *mockTestingT) Failed() bool { + return m.errorFmt != "" +} + func TestFailNowWithPlainTestingT(t *testing.T) { mockT := &mockTestingT{} diff --git a/assert/http_assertions_test.go b/assert/http_assertions_test.go index 388026fe9..dd84f02f1 100644 --- a/assert/http_assertions_test.go +++ b/assert/http_assertions_test.go @@ -41,12 +41,13 @@ func TestHTTPSuccess(t *testing.T) { assert.Equal(HTTPSuccess(mockT2, httpRedirect, "GET", "/", nil), false) assert.True(mockT2.Failed()) - mockT3 := new(testing.T) + mockT3 := new(mockTestingT) assert.Equal(HTTPSuccess( mockT3, httpError, "GET", "/", nil, "was not expecting a failure here", ), false) assert.True(mockT3.Failed()) + assert.Contains(mockT3.errorString(), "was not expecting a failure here") mockT4 := new(testing.T) assert.Equal(HTTPSuccess(mockT4, httpStatusCode, "GET", "/", nil), false) @@ -60,12 +61,13 @@ func TestHTTPSuccess(t *testing.T) { func TestHTTPRedirect(t *testing.T) { assert := New(t) - mockT1 := new(testing.T) + mockT1 := new(mockTestingT) assert.Equal(HTTPRedirect( mockT1, httpOK, "GET", "/", nil, "was expecting a 3xx status code. Got 200.", ), false) assert.True(mockT1.Failed()) + assert.Contains(mockT1.errorString(), "was expecting a 3xx status code. Got 200.") mockT2 := new(testing.T) assert.Equal(HTTPRedirect(mockT2, httpRedirect, "GET", "/", nil), true) @@ -87,12 +89,13 @@ func TestHTTPError(t *testing.T) { assert.Equal(HTTPError(mockT1, httpOK, "GET", "/", nil), false) assert.True(mockT1.Failed()) - mockT2 := new(testing.T) + mockT2 := new(mockTestingT) assert.Equal(HTTPError( mockT2, httpRedirect, "GET", "/", nil, "Expected this request to error out. But it didn't", ), false) assert.True(mockT2.Failed()) + assert.Contains(mockT2.errorString(), "Expected this request to error out. But it didn't") mockT3 := new(testing.T) assert.Equal(HTTPError(mockT3, httpError, "GET", "/", nil), true) @@ -114,12 +117,13 @@ func TestHTTPStatusCode(t *testing.T) { assert.Equal(HTTPStatusCode(mockT2, httpRedirect, "GET", "/", nil, http.StatusSwitchingProtocols), false) assert.True(mockT2.Failed()) - mockT3 := new(testing.T) + mockT3 := new(mockTestingT) assert.Equal(HTTPStatusCode( mockT3, httpError, "GET", "/", nil, http.StatusSwitchingProtocols, "Expected the status code to be %d", http.StatusSwitchingProtocols, ), false) assert.True(mockT3.Failed()) + assert.Contains(mockT3.errorString(), "Expected the status code to be 101") mockT4 := new(testing.T) assert.Equal(HTTPStatusCode(mockT4, httpStatusCode, "GET", "/", nil, http.StatusSwitchingProtocols), true) @@ -179,7 +183,7 @@ func TestHTTPRequestWithParams(t *testing.T) { func TestHttpBody(t *testing.T) { assert := New(t) - mockT := new(testing.T) + mockT := new(mockTestingT) assert.True(HTTPBodyContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "Hello, World!")) assert.True(HTTPBodyContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "World")) @@ -191,6 +195,7 @@ func TestHttpBody(t *testing.T) { "Expected the request body to not contain 'World'. But it did.", )) assert.True(HTTPBodyNotContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "world")) + assert.Contains(mockT.errorString(), "Expected the request body to not contain 'World'. But it did.") assert.True(HTTPBodyContains(mockT, httpReadBody, "GET", "/", nil, "hello")) }