From fff0e70259c41d482b6415620b33431c45142c6d Mon Sep 17 00:00:00 2001 From: William Martin Date: Wed, 16 Apr 2025 16:40:29 +0200 Subject: [PATCH] Provide better HTTP Exclude failure messages --- pkg/httpmock/registry.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pkg/httpmock/registry.go b/pkg/httpmock/registry.go index 51aa5a898..b7c5a117d 100644 --- a/pkg/httpmock/registry.go +++ b/pkg/httpmock/registry.go @@ -7,8 +7,6 @@ import ( "strings" "sync" "testing" - - "github.com/stretchr/testify/assert" ) // Replace http.Client transport layer with registry so all requests get @@ -32,10 +30,21 @@ func (r *Registry) Register(m Matcher, resp Responder) { } func (r *Registry) Exclude(t *testing.T, m Matcher) { + registrationStack := string(debug.Stack()) + excludedStub := &Stub{ Matcher: m, Responder: func(req *http.Request) (*http.Response, error) { - assert.FailNowf(t, "Exclude error", "API called when excluded: %v", req.URL) + callStack := string(debug.Stack()) + + var errMsg strings.Builder + errMsg.WriteString("HTTP call was made when it should have been excluded:\n") + errMsg.WriteString(fmt.Sprintf("Request URL: %s\n", req.URL)) + errMsg.WriteString(fmt.Sprintf("Was excluded by: %s\n", registrationStack)) + errMsg.WriteString(fmt.Sprintf("Was called from: %s\n", callStack)) + + t.Error(errMsg.String()) + t.FailNow() return nil, nil }, exclude: true,