mirror of
https://github.com/chenasraf/snpr.git
synced 2026-05-17 17:38:07 +00:00
94 lines
2.7 KiB
Ruby
94 lines
2.7 KiB
Ruby
# frozen_string_literal: true
|
|
ENV["RAILS_ENV"] ||= 'test'
|
|
require 'simplecov'
|
|
SimpleCov.start('rails') do
|
|
coverage_dir('coverage/rspec')
|
|
end
|
|
require File.expand_path("../../config/environment", __FILE__)
|
|
require 'rspec/rails'
|
|
require 'sidekiq/testing'
|
|
require 'factory_bot_rails'
|
|
require 'pry-rails' unless ENV['CI']
|
|
require 'authlogic/test_case'
|
|
require 'capybara/poltergeist'
|
|
# commenting out poltergeist as phantomjs breaks Github tests
|
|
Capybara.javascript_driver = :selenium
|
|
|
|
|
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
# in spec/support/ and its subdirectories.
|
|
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
|
|
|
Sidekiq::Logging.logger = Logger.new('log/sidekiq-test.log')
|
|
|
|
RSpec.configure do |config|
|
|
config.include FactoryBot::Syntax::Methods
|
|
config.include Authlogic::TestCase
|
|
|
|
# ## Mock Framework
|
|
#
|
|
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
|
#
|
|
# config.mock_with :mocha
|
|
# config.mock_with :flexmock
|
|
# config.mock_with :rr
|
|
|
|
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
|
#config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
|
|
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
|
# examples within a transaction, remove the following line or assign false
|
|
# instead of true.
|
|
config.use_transactional_fixtures = false
|
|
|
|
# If true, the base class of anonymous controllers will be inferred
|
|
# automatically. This will be the default behavior in future versions of
|
|
# rspec-rails.
|
|
config.infer_base_class_for_anonymous_controllers = false
|
|
|
|
# Run specs in random order to surface order dependencies. If you find an
|
|
# order dependency and want to debug it, you can fix the order by providing
|
|
# the seed, which is printed after each run.
|
|
# --seed 1234
|
|
config.order = "random"
|
|
|
|
config.infer_spec_type_from_file_location!
|
|
|
|
config.before(:suite) do
|
|
DatabaseCleaner.clean_with(:truncation, except: %w(achievements))
|
|
end
|
|
|
|
config.before(:example) do
|
|
DatabaseCleaner.strategy = :transaction
|
|
end
|
|
|
|
config.before(:example) do |example|
|
|
if example.metadata[:js] || example.metadata[:truncate]
|
|
DatabaseCleaner.strategy = :truncation, { except: %w(achievements) }
|
|
end
|
|
end
|
|
|
|
config.before(:example) do
|
|
DatabaseCleaner.start
|
|
ActionMailer::Base.deliveries.clear
|
|
end
|
|
|
|
config.after(:example) do
|
|
DatabaseCleaner.clean
|
|
end
|
|
|
|
config.before(:each) do | example |
|
|
Sidekiq::Worker.clear_all
|
|
|
|
if example.metadata[:sidekiq] == :fake
|
|
Sidekiq::Testing.fake!
|
|
elsif example.metadata[:sidekiq] == :inline
|
|
Sidekiq::Testing.inline!
|
|
elsif example.metadata[:type] == :feature
|
|
Sidekiq::Testing.inline!
|
|
else
|
|
Sidekiq::Testing.fake!
|
|
end
|
|
end
|
|
end
|