MCPcopy Index your code
hub / github.com/google/go-github / TestDo_rateLimit_errorResponse

Function TestDo_rateLimit_errorResponse

github/github_test.go:2448–2485  ·  view source on GitHub ↗

Ensure rate limit is still parsed, even for error responses.

(t *testing.T)

Source from the content-addressed store, hash-verified

2446
2447// Ensure rate limit is still parsed, even for error responses.
2448func TestDo_rateLimit_errorResponse(t *testing.T) {
2449 t.Parallel()
2450 client, mux, _ := setup(t)
2451
2452 mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
2453 w.Header().Set(HeaderRateLimit, "60")
2454 w.Header().Set(HeaderRateRemaining, "59")
2455 w.Header().Set(HeaderRateUsed, "1")
2456 w.Header().Set(HeaderRateReset, "1372700873")
2457 w.Header().Set(HeaderRateResource, "core")
2458 http.Error(w, "Bad Request", 400)
2459 })
2460
2461 req, _ := client.NewRequest(t.Context(), "GET", ".", nil)
2462 resp, err := client.Do(req, nil)
2463 if err == nil {
2464 t.Error("Expected error to be returned.")
2465 }
2466 if errors.As(err, new(*RateLimitError)) {
2467 t.Errorf("Did not expect a *RateLimitError error; got %#v.", err)
2468 }
2469 if got, want := resp.Rate.Limit, 60; got != want {
2470 t.Errorf("Client rate limit = %v, want %v", got, want)
2471 }
2472 if got, want := resp.Rate.Remaining, 59; got != want {
2473 t.Errorf("Client rate remaining = %v, want %v", got, want)
2474 }
2475 if got, want := resp.Rate.Used, 1; got != want {
2476 t.Errorf("Client rate used = %v, want %v", got, want)
2477 }
2478 reset := time.Date(2013, time.July, 1, 17, 47, 53, 0, time.UTC)
2479 if !resp.Rate.Reset.UTC().Equal(reset) {
2480 t.Errorf("Client rate reset = %v, want %v", resp.Rate.Reset, reset)
2481 }
2482 if got, want := resp.Rate.Resource, "core"; got != want {
2483 t.Errorf("Client rate resource = %v, want %v", got, want)
2484 }
2485}
2486
2487// Ensure *RateLimitError is returned when API rate limit is exceeded.
2488func TestDo_rateLimit_rateLimitError(t *testing.T) {

Callers

nothing calls this directly

Calls 5

NewRequestMethod · 0.80
EqualMethod · 0.80
setupFunction · 0.70
ErrorMethod · 0.45
DoMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…