wait_for_vue_resource.rb 449 Bytes
Newer Older
Phil Hughes's avatar
Phil Hughes committed
1 2 3
module WaitForVueResource
  def wait_for_vue_resource(spinner: true)
    Timeout.timeout(Capybara.default_max_wait_time) do
Fatih Acet's avatar
Fatih Acet committed
4
      loop until finished_all_vue_resource_requests?
Phil Hughes's avatar
Phil Hughes committed
5 6
    end
  end
Fatih Acet's avatar
Fatih Acet committed
7 8 9 10 11 12 13 14 15 16 17 18

  private

  def finished_all_vue_resource_requests?
    return true unless javascript_test?

    page.evaluate_script('window.activeVueResources || 0').zero?
  end

  def javascript_test?
    Capybara.current_driver == Capybara.javascript_driver
  end
Phil Hughes's avatar
Phil Hughes committed
19
end