File tree Expand file tree Collapse file tree
test/lib/action_push_native Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ require "test_helper"
2+
3+ module ActionPushNative
4+ class ErrorsTest < ActiveSupport ::TestCase
5+ test "retry_after accepts delta-seconds, numerics, and nil" do
6+ assert_equal 30 , TooManyRequestsError . new ( retry_after : "30" ) . retry_after
7+ assert_equal 2.5 , TooManyRequestsError . new ( retry_after : 2.5 ) . retry_after
8+ assert_nil TooManyRequestsError . new . retry_after
9+ end
10+
11+ test "retry_after accepts an HTTP-date, clamping past dates to zero" do
12+ freeze_time do
13+ error = ServiceUnavailableError . new ( retry_after : 42 . seconds . from_now . httpdate )
14+ assert_in_delta 42.0 , error . retry_after , 1.0
15+
16+ assert_equal 0.0 , ServiceUnavailableError . new ( retry_after : 1 . hour . ago . httpdate ) . retry_after
17+ end
18+ end
19+
20+ test "an unparseable Retry-After reads as nil" do
21+ assert_nil TooManyRequestsError . new ( retry_after : "soon" ) . retry_after
22+ end
23+
24+ test "the message stays the first positional argument, falling back to the reason" do
25+ assert_equal "boom" , TooManyRequestsError . new ( "boom" , reason : "QUOTA_EXCEEDED" ) . message
26+ assert_equal "QUOTA_EXCEEDED" , TooManyRequestsError . new ( reason : "QUOTA_EXCEEDED" ) . message
27+ end
28+ end
29+ end
You can’t perform that action at this time.
0 commit comments