Commit b60faa3c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets Committed by Sean McGivern

Wait for ajax for every merge request spinach test

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 5166ad8e
...@@ -9,6 +9,10 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps ...@@ -9,6 +9,10 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
include SharedUser include SharedUser
include WaitForAjax include WaitForAjax
after do
wait_for_ajax if javascript_test?
end
step 'I click link "New Merge Request"' do step 'I click link "New Merge Request"' do
click_link "New Merge Request" click_link "New Merge Request"
end end
......
require Rails.root.join('features/support/wait_for_ajax')
module SharedNote module SharedNote
include Spinach::DSL include Spinach::DSL
include WaitForAjax include WaitForAjax
......
...@@ -15,7 +15,7 @@ if ENV['CI'] ...@@ -15,7 +15,7 @@ if ENV['CI']
Knapsack::Adapters::SpinachAdapter.bind Knapsack::Adapters::SpinachAdapter.bind
end end
%w(select2_helper test_env repo_helpers license).each do |f| %w(select2_helper test_env repo_helpers license wait_for_ajax).each do |f|
require Rails.root.join('spec', 'support', f) require Rails.root.join('spec', 'support', f)
end end
......
module WaitForAjax
def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop until finished_all_ajax_requests?
end
end
def finished_all_ajax_requests?
page.evaluate_script('jQuery.active').zero?
end
end
...@@ -8,4 +8,8 @@ module WaitForAjax ...@@ -8,4 +8,8 @@ module WaitForAjax
def finished_all_ajax_requests? def finished_all_ajax_requests?
page.evaluate_script('jQuery.active').zero? page.evaluate_script('jQuery.active').zero?
end end
def javascript_test?
[:selenium, :webkit, :chrome, :poltergeist].include?(Capybara.current_driver)
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment