diff options
author | Azul <azul@leap.se> | 2013-07-14 19:52:54 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2013-07-14 19:52:54 +0200 |
commit | 8b79988c4c6cedd77664e14f16b149a669965eff (patch) | |
tree | bea408e33b4f2a973b8f268a5ad41399fe527072 | |
parent | 740813d8350290c176c1b0d0cfe3ac80aee1b420 (diff) |
make sure capybara runs the whole rack app
We use port 3003 for the integration test server.
This test takes a few seconds (~8) now. Most of this is startup time of the server. A second run still takes 2 seconds like before.
-rw-r--r-- | test/test_helper.rb | 20 | ||||
-rw-r--r-- | users/test/integration/api/rack_test.rb | 3 | ||||
-rw-r--r-- | users/test/integration/browser/account_test.rb | 2 |
3 files changed, 14 insertions, 11 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb index c6794f4..a409b58 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -12,24 +12,30 @@ class ActiveSupport::TestCase end require 'capybara/poltergeist' -Capybara.javascript_driver = :poltergeist CONFIG_RU = (Rails.root + 'config.ru').to_s OUTER_APP = Rack::Builder.parse_file(CONFIG_RU).first Capybara.register_driver :rack_test do |app| - Capybara::RackTest::Driver.new(OUTER_APP) + Capybara::RackTest::Driver.new(app) +end + +Capybara.register_driver :poltergeist do |app| + Capybara::Poltergeist::Driver.new(app) end -# Transactional fixtures do not work with Selenium tests, because Capybara -# uses a separate server thread, which the transactions would be hidden -# from. We hence use DatabaseCleaner to truncate our test database. +# this is integration testing. So let's make the whole +# rack stack available... +Capybara.app = OUTER_APP +Capybara.run_server = true +Capybara.app_host = 'http://lvh.me:3003' +Capybara.server_port = 3003 +Capybara.javascript_driver = :poltergeist + class BrowserIntegrationTest < ActionDispatch::IntegrationTest # Make the Capybara DSL available include Capybara::DSL - Capybara.app_host = 'http://localhost:3000' - Capybara.server_port = 3000 teardown do Capybara.reset_sessions! # Forget the (simulated) browser state Capybara.use_default_driver # Revert Capybara.current_driver to Capybara.default_driver diff --git a/users/test/integration/api/rack_test.rb b/users/test/integration/api/rack_test.rb index da960f2..9a69f52 100644 --- a/users/test/integration/api/rack_test.rb +++ b/users/test/integration/api/rack_test.rb @@ -1,6 +1,3 @@ -CONFIG_RU = (Rails.root + 'config.ru').to_s -OUTER_APP = Rack::Builder.parse_file(CONFIG_RU).first - class RackTest < ActiveSupport::TestCase include Rack::Test::Methods include Warden::Test::Helpers diff --git a/users/test/integration/browser/account_test.rb b/users/test/integration/browser/account_test.rb index 4fff637..5483c89 100644 --- a/users/test/integration/browser/account_test.rb +++ b/users/test/integration/browser/account_test.rb @@ -1,7 +1,7 @@ class AccountTest < BrowserIntegrationTest setup do - Capybara.current_driver = Capybara.javascript_driver # :selenium by default + Capybara.current_driver = Capybara.javascript_driver end test "normal account workflow" do |