summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-04-13 18:31:33 +0200
committerRémy Coutable <remy@rymai.me>2017-04-26 12:08:53 +0200
commit60a5273d7d49f074a75312642bcf2159b8a30ff6 (patch)
tree07cfa1b58c702316e58c19448514da63d095ffe1
parent3ff8d8020e495df319f0b0921bc94b1c3470f6f0 (diff)
downloadgitlab-ce-60a5273d7d49f074a75312642bcf2159b8a30ff6.tar.gz
Wait for AJAX requests at the JS level in addition to wait for requests at the middleware level
Hopefully, this can solve transient failures such as https://gitlab.com/gitlab-org/gitlab-ce/issues/29836. Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--spec/support/wait_for_requests.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/spec/support/wait_for_requests.rb b/spec/support/wait_for_requests.rb
index 0bfa7f72ff8..73da23391ee 100644
--- a/spec/support/wait_for_requests.rb
+++ b/spec/support/wait_for_requests.rb
@@ -1,11 +1,15 @@
+require_relative './wait_for_ajax'
+
module WaitForRequests
extend self
+ include WaitForAjax
# This is inspired by http://www.salsify.com/blog/engineering/tearing-capybara-ajax-tests
def wait_for_requests_complete
Gitlab::Testing::RequestBlockerMiddleware.block_requests!
wait_for('pending AJAX requests complete') do
- Gitlab::Testing::RequestBlockerMiddleware.num_active_requests.zero?
+ Gitlab::Testing::RequestBlockerMiddleware.num_active_requests.zero? &&
+ finished_all_ajax_requests?
end
ensure
Gitlab::Testing::RequestBlockerMiddleware.allow_requests!