Skip to content

Commit

Permalink
chore(cts): add retry (#452)
Browse files Browse the repository at this point in the history
  • Loading branch information
chloelbn authored Mar 30, 2021
1 parent dd468cb commit 2b6236c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 14 deletions.
8 changes: 6 additions & 2 deletions test/algolia/integration/analytics_client_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ def test_ab_testing
endAt: tomorrow.strftime('%Y-%m-%dT%H:%M:%SZ')
}

response = client.add_ab_test(ab_test)
response = retry_test do
client.add_ab_test(ab_test)
end
ab_test_id = response[:abTestID]

index1.wait_task(response[:taskID])
Expand Down Expand Up @@ -86,7 +88,9 @@ def test_aa_testing
endAt: tomorrow.strftime('%Y-%m-%dT%H:%M:%SZ')
}

response = client.add_ab_test(ab_test)
response = retry_test do
client.add_ab_test(ab_test)
end
ab_test_id = response[:abTestID]

index.wait_task(response[:taskID])
Expand Down
26 changes: 14 additions & 12 deletions test/algolia/integration/search_client_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,9 @@ def test_api_keys
assert_includes api_keys, @api_key[:value]

@@search_client.update_api_key!(@api_key[:value], { maxHitsPerQuery: 42 })
updated_api_key = @@search_client.get_api_key(@api_key[:value])
updated_api_key = retry_test do
@@search_client.get_api_key(@api_key[:value], test: 'test')
end
assert_equal 42, updated_api_key[:maxHitsPerQuery]

@@search_client.delete_api_key!(@api_key[:value])
Expand All @@ -235,18 +237,13 @@ def test_api_keys

assert_equal 'Key does not exist', exception.message

loop do
begin
@@search_client.restore_api_key!(@api_key[:value])
break
rescue Algolia::AlgoliaHttpError => e
if e.code != 404
raise StandardError
end
end
retry_test do
@@search_client.restore_api_key!(@api_key[:value])
end

restored_key = @@search_client.get_api_key(@api_key[:value])
restored_key = retry_test do
@@search_client.get_api_key(@api_key[:value])
end

refute_nil restored_key
end
Expand Down Expand Up @@ -335,7 +332,12 @@ def test_secured_api_keys
secured_index1 = secured_client.init_index(@index1.name)
secured_index2 = secured_client.init_index(@index2.name)

secured_index1.search('')
res = retry_test do
secured_index1.search('')
end

assert_equal 1, res[:hits].length

exception = assert_raises Algolia::AlgoliaHttpError do
secured_index2.search('')
end
Expand Down
12 changes: 12 additions & 0 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,15 @@ def rule_without_metadata(rule)
rule.delete(:_metadata)
rule
end

def retry_test(delay = 0.1, max_retries = 30)
(1...max_retries).each do |i|
begin
return yield
rescue Algolia::AlgoliaHttpError
sleep delay * i
end
end

raise StandardError, 'reached the maximum number of retries'
end

0 comments on commit 2b6236c

Please sign in to comment.