Sha256: 9898b2946466db616c27d25a506fef297aeb42b4a1cee10dbc065485946865c3

Contents?: true

Size: 861 Bytes

Versions: 3

Compression:

Stored size: 861 Bytes

Contents

# frozen_string_literal: true

# This class works around some weirdness with Capybara's test suite and sinatra's behavior.
# We need to make sure that sinatra uses TestApp for at least one request before the Capybara session
# specs run.  Without this we get errors from sinatra trying to handle requests with TestApp.clone
class ExtendedTestAppSetup
  include Capybara::DSL

  attr_reader :remote_test_url

  def boot
    boot_test_app
    boot_remote_app
    Capybara.raise_server_errors = false

    self
  end

  def boot_test_app
    Capybara.app = TestApp
    dummy_server = Capybara::Server.new(TestApp)
    dummy_server.boot

    # Boot TestApp's Sinatra
    visit '/'
  end

  def boot_remote_app
    remote_server = Capybara::Server.new(ExtendedTestApp)
    remote_server.boot
    @remote_test_url = "http://localhost:#{remote_server.port}"
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
capybara-mechanize-1.13.0 spec/support/extended_test_app_setup.rb
capybara-mechanize-1.12.1 spec/support/extended_test_app_setup.rb
capybara-mechanize-1.12.0 spec/support/extended_test_app_setup.rb