mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
35 lines
1.2 KiB
Ruby
35 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
require 'rspec/core'
|
|
require 'capybara/dsl'
|
|
require 'capybara/rspec/matchers'
|
|
require 'capybara/rspec/features'
|
|
require 'capybara/rspec/matcher_proxies'
|
|
|
|
RSpec.configure do |config|
|
|
config.include Capybara::DSL, :type => :feature
|
|
config.include Capybara::RSpecMatchers, :type => :feature
|
|
config.include Capybara::RSpecMatchers, :type => :view
|
|
|
|
# A work-around to support accessing the current example that works in both
|
|
# RSpec 2 and RSpec 3.
|
|
fetch_current_example = RSpec.respond_to?(:current_example) ?
|
|
proc { RSpec.current_example } : proc { |context| context.example }
|
|
|
|
# The before and after blocks must run instantaneously, because Capybara
|
|
# might not actually be used in all examples where it's included.
|
|
config.after do
|
|
if self.class.include?(Capybara::DSL)
|
|
Capybara.reset_sessions!
|
|
Capybara.use_default_driver
|
|
end
|
|
end
|
|
|
|
config.before do
|
|
if self.class.include?(Capybara::DSL)
|
|
example = fetch_current_example.call(self)
|
|
Capybara.current_driver = Capybara.javascript_driver if example.metadata[:js]
|
|
Capybara.current_driver = example.metadata[:driver] if example.metadata[:driver]
|
|
end
|
|
end
|
|
end
|
|
|