Extract Capybara setup to a helper file
Any Capybara-related test setup has been moved to `capybara_helper.rb`. Now we just must require this file in order to run tests with Capybara. I also moved the `#console_log` helper to this file to showcase how other global helper methods could be defined in this file.
This commit is contained in:
committed by
benjamin wil
parent
ce85301e70
commit
f15a72ce05
@@ -0,0 +1,21 @@
|
|||||||
|
require_relative 'helper'
|
||||||
|
|
||||||
|
require 'selenium-webdriver'
|
||||||
|
require 'capybara/dsl'
|
||||||
|
|
||||||
|
CAPYBARA_DRIVER =
|
||||||
|
if ENV['CI']
|
||||||
|
:selenium_chrome_headless
|
||||||
|
else
|
||||||
|
ENV.fetch('CAPYBARA_DRIVER', :selenium_chrome).to_sym
|
||||||
|
end
|
||||||
|
|
||||||
|
Capybara.default_driver = CAPYBARA_DRIVER
|
||||||
|
Capybara.enable_aria_label = true
|
||||||
|
Capybara.server = :webrick
|
||||||
|
|
||||||
|
def console_log(page, level = :severe)
|
||||||
|
page.driver.browser.logs.get(:browser).select { |log| log.level == level.to_s.upcase }
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -32,7 +32,6 @@ ENV['RACK_ENV'] = 'test'
|
|||||||
require 'gollum'
|
require 'gollum'
|
||||||
require 'gollum/app'
|
require 'gollum/app'
|
||||||
|
|
||||||
CAPYBARA_DRIVER = ENV['CI'] ? :selenium_chrome_headless : ENV.fetch('CAPYBARA_DRIVER', :selenium_chrome).to_sym
|
|
||||||
|
|
||||||
# Disable the metadata feature
|
# Disable the metadata feature
|
||||||
$METADATA = false
|
$METADATA = false
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper'))
|
require_relative '../capybara_helper'
|
||||||
require 'selenium-webdriver'
|
|
||||||
require 'capybara/dsl'
|
|
||||||
|
|
||||||
Capybara.default_driver = ::CAPYBARA_DRIVER
|
|
||||||
Capybara.server = :webrick
|
|
||||||
|
|
||||||
def console_log(page, level = :severe)
|
def console_log(page, level = :severe)
|
||||||
page.driver.browser.logs.get(:browser).select{|log| log.level == level.to_s.upcase }
|
page.driver.browser.logs.get(:browser).select{|log| log.level == level.to_s.upcase }
|
||||||
@@ -21,7 +16,7 @@ end
|
|||||||
|
|
||||||
context 'Frontend with mathjax' do
|
context 'Frontend with mathjax' do
|
||||||
include Capybara::DSL
|
include Capybara::DSL
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
@path = cloned_testpath("examples/lotr.git")
|
@path = cloned_testpath("examples/lotr.git")
|
||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new(@path)
|
||||||
@@ -29,21 +24,21 @@ context 'Frontend with mathjax' do
|
|||||||
Precious::App.set(:wiki_options, {mathjax: true})
|
Precious::App.set(:wiki_options, {mathjax: true})
|
||||||
Capybara.app = Precious::App
|
Capybara.app = Precious::App
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'no unexpected errors on /' do
|
test 'no unexpected errors on /' do
|
||||||
visit '/'
|
visit '/'
|
||||||
log = console_log(page)
|
log = console_log(page)
|
||||||
assert_only_expected_errors(log)
|
assert_only_expected_errors(log)
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'no unexpected errors on /create/' do
|
test 'no unexpected errors on /create/' do
|
||||||
visit '/create/Foobar'
|
visit '/create/Foobar'
|
||||||
log = console_log(page)
|
log = console_log(page)
|
||||||
assert_only_expected_errors(log)
|
assert_only_expected_errors(log)
|
||||||
end
|
end
|
||||||
|
|
||||||
teardown do
|
teardown do
|
||||||
Capybara.reset_sessions!
|
Capybara.reset_sessions!
|
||||||
Capybara.use_default_driver
|
Capybara.use_default_driver
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user