osem-fcy/spec/support/jquery_macros.rb

15 lines
439 B
Ruby
Raw Normal View History

2023-05-31 14:49:39 -07:00
# frozen_string_literal: true
module JQueryMacros
# Wait for one jQuery Ajax request during the block
def wait_for_ajax
flag = "window.ajax_#{SecureRandom.alphanumeric(16)}"
page.execute_script "#{flag} = false; $(document).one('ajaxComplete', () => #{flag} = true);"
yield
Timeout.timeout(Capybara.default_max_wait_time) { loop until page.evaluate_script(flag) }
page.execute_script "delete #{flag};"
end
end