Update rails_helper
- Added sections and comments - Add support for loading via canonical.rb - Add FactoryBot syntax methods - Disable SQL logging in test environment
This commit is contained in:
parent
56987ba119
commit
6dbe7bd7c4
1 changed files with 62 additions and 34 deletions
|
|
@ -1,56 +1,84 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
ENV['RAILS_ENV'] ||= 'test'
|
ENV['RAILS_ENV'] ||= 'test'
|
||||||
require_relative '../config/environment'
|
require_relative '../config/environment'
|
||||||
|
|
||||||
# Prevent database truncation if the environment is production
|
# Prevent database truncation if the environment is production
|
||||||
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
abort('The Rails environment is running in production mode!') if Rails.env.production?
|
||||||
# Uncomment the line below in case you have `--require rails_helper` in the `.rspec` file
|
|
||||||
# that will avoid rails generators crashing because migrations haven't been run yet
|
# Load Rails and RSpec Rails – Rails is not loaded until after the environment is set.
|
||||||
# return unless Rails.env.test?
|
|
||||||
require 'rspec/rails'
|
require 'rspec/rails'
|
||||||
# Add additional requires below this line. Rails is not loaded until this point!
|
|
||||||
|
|
||||||
# Requires supporting ruby files with custom matchers and macros, etc, in
|
# -----------------------------------------------------------------------------
|
||||||
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
# Additional Requires:
|
||||||
# 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
|
# Add any additional requires below this line. For example, if you need to load
|
||||||
# of increasing the boot-up time by auto-requiring all files in the support
|
# custom libraries or support files that are not automatically required.
|
||||||
# directory. Alternatively, in the individual `*_spec.rb` files, manually
|
# -----------------------------------------------------------------------------
|
||||||
# require only the support files necessary.
|
|
||||||
#
|
|
||||||
# Rails.root.glob('spec/support/**/*.rb').sort_by(&:to_s).each { |f| require f }
|
|
||||||
|
|
||||||
# Checks for pending migrations and applies them before tests are run.
|
# -----------------------------------------------------------------------------
|
||||||
# If you are not using ActiveRecord, you can remove these lines.
|
# Require Support Files:
|
||||||
|
#
|
||||||
|
# All files in the spec/support directory and its subdirectories (except those
|
||||||
|
# ending in _spec.rb) are automatically required here. This is useful for custom
|
||||||
|
# matchers, macros, and shared contexts.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Check for Pending Migrations:
|
||||||
|
#
|
||||||
|
# This will check for any pending migrations before tests are run.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
begin
|
begin
|
||||||
ActiveRecord::Migration.maintain_test_schema!
|
ActiveRecord::Migration.maintain_test_schema!
|
||||||
rescue ActiveRecord::PendingMigrationError => e
|
rescue ActiveRecord::PendingMigrationError => e
|
||||||
abort e.to_s.strip
|
abort e.to_s.strip
|
||||||
end
|
end
|
||||||
|
|
||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
# Disable ActiveRecord logging during tests for a cleaner test output.
|
||||||
config.fixture_paths = [
|
ActiveRecord::Base.logger = nil if Rails.env.test?
|
||||||
Rails.root.join('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
|
# Shoulda Matchers:
|
||||||
# instead of true.
|
#
|
||||||
config.use_transactional_fixtures = true
|
# If you use shoulda-matchers, you can configure them here. (Make sure you have
|
||||||
|
# the shoulda-matchers gem installed and configured in your Gemfile.)
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# require 'shoulda/matchers'
|
||||||
|
# Shoulda::Matchers.configure do |matcher_config|
|
||||||
|
# matcher_config.integrate do |with|
|
||||||
|
# with.test_framework :rspec
|
||||||
|
# with.library :rails
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
|
||||||
# Optionally, load fixtures automatically for tests that declare :fixture.
|
# -----------------------------------------------------------------------------
|
||||||
config.global_fixtures = :all
|
# FactoryBot Syntax Methods:
|
||||||
|
#
|
||||||
|
# This makes methods like create and build available without needing to prefix
|
||||||
|
# them with FactoryBot.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
config.include FactoryBot::Syntax::Methods
|
||||||
|
|
||||||
# You can uncomment this line to turn off ActiveRecord support entirely.
|
# -----------------------------------------------------------------------------
|
||||||
# config.use_active_record = false
|
# Load canonical seed data for test environment:
|
||||||
|
#
|
||||||
|
# This ensures that your canonical CSV data is loaded before your tests run.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
config.before(:suite) do
|
||||||
|
load Rails.root.join('db', 'seed', 'canonical.rb')
|
||||||
|
end
|
||||||
|
|
||||||
# Filter lines from Rails gems in backtraces.
|
# -----------------------------------------------------------------------------
|
||||||
|
# Backtrace Filtering:
|
||||||
|
#
|
||||||
|
# Filter out lines from Rails gems in backtraces for clarity.
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
config.filter_rails_from_backtrace!
|
config.filter_rails_from_backtrace!
|
||||||
# arbitrary gems may also be filtered via:
|
# You can add additional filters here if needed:
|
||||||
# config.filter_gems_from_backtrace("gem name")
|
# config.filter_gems_from_backtrace("gem name")
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue