summaryrefslogtreecommitdiffstats
path: root/client/go/internal/mock
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-06-13 12:50:18 +0200
committerMartin Polden <mpolden@mpolden.no>2023-06-13 13:10:17 +0200
commit1b7a8fdcc52166fd3033d5ed85e902d6a775d9ab (patch)
treecba892172b1e9695f478f059e08ab7495e75b6b6 /client/go/internal/mock
parenta8588e074f7f556eb275c631a2b1d67299d21aba (diff)
Report details of feed transport error
Diffstat (limited to 'client/go/internal/mock')
-rw-r--r--client/go/internal/mock/http.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/client/go/internal/mock/http.go b/client/go/internal/mock/http.go
index f176870a940..8bab716ea60 100644
--- a/client/go/internal/mock/http.go
+++ b/client/go/internal/mock/http.go
@@ -14,6 +14,9 @@ type HTTPClient struct {
// The responses to return for future requests. Once a response is consumed, it's removed from this slice.
nextResponses []HTTPResponse
+ // The error to return for the next request. If non-nil, this error is returned before any responses in nextResponses.
+ nextError error
+
// LastRequest is the last HTTP request made through this.
LastRequest *http.Request
@@ -48,7 +51,16 @@ func (c *HTTPClient) NextResponse(response HTTPResponse) {
c.nextResponses = append(c.nextResponses, response)
}
+func (c *HTTPClient) NextResponseError(err error) {
+ c.nextError = err
+}
+
func (c *HTTPClient) Do(request *http.Request, timeout time.Duration) (*http.Response, error) {
+ if c.nextError != nil {
+ err := c.nextError
+ c.nextError = nil
+ return nil, err
+ }
response := HTTPResponse{Status: 200}
if len(c.nextResponses) > 0 {
response = c.nextResponses[0]