diff --git a/lib/fbe/octo.rb b/lib/fbe/octo.rb index ee0ce178..dfe880c3 100644 --- a/lib/fbe/octo.rb +++ b/lib/fbe/octo.rb @@ -265,7 +265,10 @@ def with_disable_auto_paginate # rubocop:disable Layout/EmptyLineBetweenDefs o = intercepted(o) do |e, m, args, _r| next unless e == :before - next if %i[off_quota? print_trace! rate_limit rate_limit!].include?(m) + next if %i[ + off_quota? print_trace! rate_limit rate_limit! rate_limit_remaining rate_limit_remaining! + ratelimit ratelimit! ratelimit_remaining ratelimit_remaining! + ].include?(m) next if m == :get && %w[/rate_limit rate_limit].include?(args.first) if Fbe::SEARCH_METHODS.include?(m) raise(Fbe::OffQuota, "We are off-quota on the search resource, can't do #{m}()") if diff --git a/test/fbe/test_octo.rb b/test/fbe/test_octo.rb index 9efa8b8a..bd84df97 100644 --- a/test/fbe/test_octo.rb +++ b/test/fbe/test_octo.rb @@ -202,6 +202,22 @@ def test_rate_limit_bang_works_when_off_quota assert_not_requested(:get, 'https://api.github.com/user/42') end + def test_rate_limit_aliases_work_when_off_quota + WebMock.disable_net_connect! + stub_request(:get, 'https://api.github.com/rate_limit').to_return( + body: { rate: { limit: 5000, remaining: 7, reset: 1 } }.to_json, + headers: { 'Content-Type' => 'application/json', 'X-RateLimit-Remaining' => '7' } + ) + o = Fbe.octo(loog: Loog::NULL, global: {}, options: Judges::Options.new({ 'github_token' => 'fake-token' })) + assert_predicate(o, :off_quota?) + %i[ratelimit ratelimit!].each do |m| + assert_equal(7, o.public_send(m).remaining, "#{m} was refused off-quota") + end + %i[rate_limit_remaining rate_limit_remaining! ratelimit_remaining ratelimit_remaining!].each do |m| + assert_equal(7, o.public_send(m), "#{m} was refused off-quota") + end + end + def test_raw_rate_limit_works_when_off_quota WebMock.disable_net_connect! stub_request(:get, 'https://api.github.com/rate_limit').to_return(