Sha256: bd44937a1f937b41f47ac590ba3730a1f539372073d8957e543b59d60b3bbe97
Contents?: true
Size: 1.21 KB
Versions: 8
Compression:
Stored size: 1.21 KB
Contents
module HyperSpec module WaitForAjax def wait_for_ajax Timeout.timeout(Capybara.default_max_wait_time) do loop do sleep 0.25 break if finished_all_ajax_requests? end end end def running? jscode = <<-CODE (function() { if (typeof Opal !== "undefined" && Opal.Hyperloop !== undefined) { try { return Opal.Hyperloop.$const_get("HTTP")["$active?"](); } catch(err) { if (typeof jQuery !== "undefined" && jQuery.active !== undefined) { return (jQuery.active > 0); } else { return false; } } } else if (typeof jQuery !== "undefined" && jQuery.active !== undefined) { return (jQuery.active > 0); } else { return false; } })(); CODE page.evaluate_script(jscode) rescue Exception => e puts "wait_for_ajax failed while testing state of ajax requests: #{e}" end def finished_all_ajax_requests? !running? rescue Capybara::NotSupportedByDriverError true rescue Exception => e e.message == 'either jQuery or Hyperloop::HTTP is not defined' end end end
Version data entries
8 entries across 8 versions & 1 rubygems