Skip to content

Commit 2b6236c

Browse files
authored
chore(cts): add retry (#452)
1 parent dd468cb commit 2b6236c

File tree

3 files changed

+32
-14
lines changed

3 files changed

+32
-14
lines changed

test/algolia/integration/analytics_client_test.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ def test_ab_testing
2323
endAt: tomorrow.strftime('%Y-%m-%dT%H:%M:%SZ')
2424
}
2525

26-
response = client.add_ab_test(ab_test)
26+
response = retry_test do
27+
client.add_ab_test(ab_test)
28+
end
2729
ab_test_id = response[:abTestID]
2830

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

89-
response = client.add_ab_test(ab_test)
91+
response = retry_test do
92+
client.add_ab_test(ab_test)
93+
end
9094
ab_test_id = response[:abTestID]
9195

9296
index.wait_task(response[:taskID])

test/algolia/integration/search_client_test.rb

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,9 @@ def test_api_keys
224224
assert_includes api_keys, @api_key[:value]
225225

226226
@@search_client.update_api_key!(@api_key[:value], { maxHitsPerQuery: 42 })
227-
updated_api_key = @@search_client.get_api_key(@api_key[:value])
227+
updated_api_key = retry_test do
228+
@@search_client.get_api_key(@api_key[:value], test: 'test')
229+
end
228230
assert_equal 42, updated_api_key[:maxHitsPerQuery]
229231

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

236238
assert_equal 'Key does not exist', exception.message
237239

238-
loop do
239-
begin
240-
@@search_client.restore_api_key!(@api_key[:value])
241-
break
242-
rescue Algolia::AlgoliaHttpError => e
243-
if e.code != 404
244-
raise StandardError
245-
end
246-
end
240+
retry_test do
241+
@@search_client.restore_api_key!(@api_key[:value])
247242
end
248243

249-
restored_key = @@search_client.get_api_key(@api_key[:value])
244+
restored_key = retry_test do
245+
@@search_client.get_api_key(@api_key[:value])
246+
end
250247

251248
refute_nil restored_key
252249
end
@@ -335,7 +332,12 @@ def test_secured_api_keys
335332
secured_index1 = secured_client.init_index(@index1.name)
336333
secured_index2 = secured_client.init_index(@index2.name)
337334

338-
secured_index1.search('')
335+
res = retry_test do
336+
secured_index1.search('')
337+
end
338+
339+
assert_equal 1, res[:hits].length
340+
339341
exception = assert_raises Algolia::AlgoliaHttpError do
340342
secured_index2.search('')
341343
end

test/test_helper.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,15 @@ def rule_without_metadata(rule)
8787
rule.delete(:_metadata)
8888
rule
8989
end
90+
91+
def retry_test(delay = 0.1, max_retries = 30)
92+
(1...max_retries).each do |i|
93+
begin
94+
return yield
95+
rescue Algolia::AlgoliaHttpError
96+
sleep delay * i
97+
end
98+
end
99+
100+
raise StandardError, 'reached the maximum number of retries'
101+
end

0 commit comments

Comments
 (0)