# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril. # It is recommended to regenerate this file in the future when you upgrade to a # newer version of cucumber-rails. Consider adding your own code to a new file # instead of editing this one. Cucumber will automatically load all features/**/*.rb # files. ENV['RAILS_ENV'] = 'test' require 'simplecov' if ENV["COVERAGE"] == "true" Dir["#{File.expand_path('../../step_definitions', __FILE__)}/*.rb"].each do |f| require f end require 'rails' ENV['RAILS_ROOT'] = File.expand_path("../../../spec/rails/rails-#{Rails.version}", __FILE__) # Create the test app if it doesn't exists unless File.exists?(ENV['RAILS_ROOT']) system 'rake setup' end require 'active_record' require 'active_admin' require 'devise' ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"] require ENV['RAILS_ROOT'] + '/config/environment' # Setup autoloading of ActiveAdmin autoload :ActiveAdmin, 'active_admin' require 'cucumber/rails' require 'rspec/mocks' World(RSpec::Mocks::ExampleMethods) Before do RSpec::Mocks.setup end After do begin RSpec::Mocks.verify ensure RSpec::Mocks.teardown end end require "capybara/cuprite" Capybara.register_driver(:cuprite) do |app| Capybara::Cuprite::Driver.new(app, process_timeout: 30, timeout: 30) end Capybara.javascript_driver = :cuprite Capybara.server = :webrick Capybara.asset_host = 'http://localhost:3000' # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In # order to ease the transition to Capybara we set the default here. If you'd # prefer to use XPath just remove this line and adjust any selectors in your # steps to use the XPath syntax. Capybara.default_selector = :css # If you set this to false, any error raised from within your app will bubble # up to your step definition and out to cucumber unless you catch it somewhere # on the way. You can make Rails rescue errors and render error pages on a # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag. # # If you set this to true, Rails will rescue all errors and render error # pages, more or less in the same way your application would behave in the # default production environment. It's not recommended to do this for all # of your scenarios, as this makes it hard to discover errors in your application. ActionController::Base.allow_rescue = false # Database resetting strategy DatabaseCleaner.strategy = :truncation Cucumber::Rails::Database.javascript_strategy = :truncation # Warden helpers to speed up login # See https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara include Warden::Test::Helpers After do Warden.test_reset! # Reset back to the default auth adapter ActiveAdmin.application.namespace(:admin). authorization_adapter = ActiveAdmin::AuthorizationAdapter end Before do # We are caching classes, but need to manually clear references to # the controllers. If they aren't clear, the router stores references ActiveSupport::Dependencies.clear if Rails::VERSION::MAJOR < 7 # Reload Active Admin ActiveAdmin.unload! ActiveAdmin.load! end # Force deprecations to raise an exception. ActiveSupport::Deprecation.behavior = :raise # improve the performance of the specs suite by not logging anything # see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/ Rails.logger.level = 4 Around '@silent_unpermitted_params_failure' do |scenario, block| original = ActionController::Parameters.action_on_unpermitted_parameters begin ActionController::Parameters.action_on_unpermitted_parameters = false block.call ensure ActionController::Parameters.action_on_unpermitted_parameters = original end end Around '@locale_manipulation' do |scenario, block| I18n.with_locale(:en) { block.call } end