Sha256: 65f9d1ceda8d14f9906d5158ba7eb79b6efa87521a5e2fe3c5bf1dbcdc757c2f
Contents?: true
Size: 1.21 KB
Versions: 6
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.Hyperstack !== undefined) { try { return Opal.Hyperstack.$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 Hyperstack::HTTP is not defined' end end end
Version data entries
6 entries across 6 versions & 1 rubygems