MCPcopy Create free account
hub / github.com/auth0/auth0-cli / TestCustomClientWithRetries

Function TestCustomClientWithRetries

internal/cli/management_test.go:18–113  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestCustomClientWithRetries(t *testing.T) {
19 t.Run("it retries on rate limit error", func(t *testing.T) {
20 apiCalls := 0
21 fail := true
22 testServer := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
23 apiCalls++
24
25 if fail {
26 fail = false
27 writer.WriteHeader(429)
28 resetAt := time.Now().Add(time.Second).Unix()
29 writer.Header().Set("X-RateLimit-Reset", strconv.Itoa(int(resetAt)))
30 return
31 }
32
33 writer.WriteHeader(200)
34 }))
35
36 client := customClientWithRetries()
37
38 request, err := http.NewRequest(http.MethodGet, testServer.URL, nil)
39 require.NoError(t, err)
40
41 response, err := client.Do(request)
42 require.NoError(t, err)
43
44 assert.Equal(t, 200, response.StatusCode)
45 assert.False(t, fail)
46 assert.Equal(t, 2, apiCalls)
47
48 t.Cleanup(func() {
49 testServer.Close()
50 err := response.Body.Close()
51 require.NoError(t, err)
52 })
53 })
54
55 t.Run("it retries on server error", func(t *testing.T) {
56 apiCalls := 0
57 fail := true
58 testServer := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
59 apiCalls++
60
61 if fail {
62 fail = false
63 writer.WriteHeader(500)
64 return
65 }
66
67 writer.WriteHeader(200)
68 }))
69
70 client := customClientWithRetries()
71
72 request, err := http.NewRequest(http.MethodGet, testServer.URL, nil)
73 require.NoError(t, err)
74
75 response, err := client.Do(request)

Callers

nothing calls this directly

Calls 4

customClientWithRetriesFunction · 0.85
NewRequestMethod · 0.80
DoMethod · 0.80
CloseMethod · 0.80

Tested by

no test coverage detected