module TestHelpers::Wait

Public Class Methods

configuration() click to toggle source
# File lib/test-helpers/wait/wait.rb, line 3
def self.configuration
  default_configuration
end
configure() { |default_configuration| ... } click to toggle source
# File lib/test-helpers/wait/wait.rb, line 11
def self.configure
  yield(default_configuration) if block_given?
end
default_configuration() click to toggle source
# File lib/test-helpers/wait/wait.rb, line 7
def self.default_configuration
  @configuration ||= Configuration.new
end

Public Instance Methods

poll_and_assert(options = {}) { || ... } click to toggle source
# File lib/test-helpers/wait/wait.rb, line 30
def poll_and_assert(options = {})
  return unless block_given?
  timeout = Float(options[:timeout] || TestHelpers::Wait.default_configuration.wait_timeout)
  interval = Float(options[:interval] || TestHelpers::Wait.default_configuration.wait_interval)
  end_time = ::Time.now + timeout
  failure = nil
  until ::Time.now > end_time
    begin
      result = yield
      return result if result
    rescue ::RSpec::Expectations::ExpectationNotMetError => e
      failure = e
      sleep interval
    end
  end
  raise failure
end
wait_until(options = {}) { || ... } click to toggle source
# File lib/test-helpers/wait/wait.rb, line 48
def wait_until(options = {})
  return unless block_given?
  timeout = Float(options[:timeout] || TestHelpers::Wait.default_configuration.wait_timeout)
  interval = Float(options[:interval] || TestHelpers::Wait.default_configuration.wait_interval)
  error_message = options[:error_message] || TestHelpers::Wait.default_configuration.error_message
  end_time = ::Time.now + timeout
  until ::Time.now > end_time
    begin
      result = yield
      return result if result
      sleep interval
    rescue ::StandardError
      sleep interval
    end
  end
  result = yield
  return result if result
  raise Timeout::Error.new(error_message)
end