# This file is copied to spec/ when you run "rails generate rspec:install" ENV["RAILS_ENV"] ||= "test" require "coveralls" Coveralls.wear!("rails") require "spec_helper" require File.expand_path("../../config/environment", __FILE__) require "rspec/rails" # Add additional requires below this line. Rails is not loaded until this point! require "capybara/poltergeist" require "rack_session_access/capybara" require "sidekiq/testing" Sidekiq::Testing.inline! # Requires supporting ruby files with custom matchers and macros, etc, in # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are # run as spec files by default. This means that files in spec/support that end # in _spec.rb will both be required and run as specs, causing the specs to be # run twice. It is recommended that you do not name files matching this glob to # end with _spec.rb. You can configure this pattern with the --pattern # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. # # The following line is provided for convenience purposes. It has the downside # of increasing the boot-up time by auto-requiring all files in the support # directory. Alternatively, in the individual `*_spec.rb` files, manually # require only the support files necessary. # Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # Checks for pending migrations before tests are run. # If you are not using ActiveRecord, you can remove this line. ActiveRecord::Migration.maintain_test_schema! Capybara.javascript_driver = :poltergeist RSpec.configure do |config| # Remove this line if you"re not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures" config.include FactoryGirl::Syntax::Methods config.include HttpAuthentication config.use_transactional_fixtures = false config.infer_spec_type_from_file_location! config.before(:suite) do DatabaseCleaner.clean_with(:truncation) end config.before(:each) do DatabaseCleaner.strategy = :transaction end config.before(:each, js: true) do DatabaseCleaner.strategy = :truncation page.driver.browser.url_blacklist = [ "https://apis.google.com", "http://fonts.googleapis.com", "https://www.google.com", "https://accounts.google.com", "https://maps.google.com", "https://s.ytimg.com", "https://secure.gravatar.com", "https://www.youtube-nocookie.com", ] end config.before(:each) do DatabaseCleaner.start end config.after(:each) do DatabaseCleaner.clean end config.after(:each) do |example| if example.metadata[:type] == :feature && example.exception.present? subject.record_failure end end end