| 1 | # This file is copied to spec/ when you run 'rails generate rspec:install' |
| 2 | require 'spec_helper' |
| 3 | ENV['RAILS_ENV'] ||= 'test' |
| 4 | require_relative '../config/environment' |
| 5 | # Prevent database truncation if the environment is production |
| 6 | abort("The Rails environment is running in production mode!") if Rails.env.production? |
| 7 | # Uncomment the line below in case you have `--require rails_helper` in the `.rspec` file |
| 8 | # that will avoid rails generators crashing because migrations haven't been run yet |
| 9 | # return unless Rails.env.test? |
| 10 | require 'rspec/rails' |
| 11 | # Add additional requires below this line. Rails is not loaded until this point! |
| 12 | |
| 13 | # No spec may hit the network; GitHub REST calls are stubbed with webmock. |
| 14 | require 'webmock/rspec' |
| 15 | WebMock.disable_net_connect!(allow_localhost: true) |
| 16 | |
| 17 | # Requires supporting ruby files with custom matchers and macros, etc, in |
| 18 | # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are |
| 19 | # run as spec files by default. This means that files in spec/support that end |
| 20 | # in _spec.rb will both be required and run as specs, causing the specs to be |
| 21 | # run twice. It is recommended that you do not name files matching this glob to |
| 22 | # end with _spec.rb. You can configure this pattern with the --pattern |
| 23 | # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. |
| 24 | # |
| 25 | # The following line is provided for convenience purposes. It has the downside |
| 26 | # of increasing the boot-up time by auto-requiring all files in the support |
| 27 | # directory. Alternatively, in the individual `*_spec.rb` files, manually |
| 28 | # require only the support files necessary. |
| 29 | # |
| 30 | # Rails.root.glob('spec/support/**/*.rb').sort_by(&:to_s).each { |f| require f } |
| 31 | |
| 32 | # Ensures that the test database schema matches the current schema file. |
| 33 | # If there are pending migrations it will invoke `db:test:prepare` to |
| 34 | # recreate the test database by loading the schema. |
| 35 | # If you are not using ActiveRecord, you can remove these lines. |
| 36 | begin |
| 37 | ActiveRecord::Migration.maintain_test_schema! |
| 38 | rescue ActiveRecord::PendingMigrationError => e |
| 39 | abort e.to_s.strip |
| 40 | end |
| 41 | RSpec.configure do |config| |
| 42 | # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures |
| 43 | config.fixture_paths = [ |
| 44 | Rails.root.join('spec/fixtures') |
| 45 | ] |
| 46 | |
| 47 | # If you're not using ActiveRecord, or you'd prefer not to run each of your |
| 48 | # examples within a transaction, remove the following line or assign false |
| 49 | # instead of true. |
| 50 | config.use_transactional_fixtures = true |
| 51 | |
| 52 | # You can uncomment this line to turn off ActiveRecord support entirely. |
| 53 | # config.use_active_record = false |
| 54 | |
| 55 | # RSpec Rails uses metadata to mix in different behaviours to your tests, |
| 56 | # for example enabling you to call `get` and `post` in request specs. e.g.: |
| 57 | # |
| 58 | # RSpec.describe UsersController, type: :request do |
| 59 | # # ... |
| 60 | # end |
| 61 | # |
| 62 | # The different available types are documented in the features, such as in |
| 63 | # https://rspec.info/features/8-0/rspec-rails |
| 64 | # |
| 65 | # You can also infer these behaviours automatically by location, e.g. |
| 66 | # /spec/models would pull in the same behaviour as `type: :model` but this |
| 67 | # behaviour is considered legacy and will be removed in a future version. |
| 68 | # |
| 69 | # To enable this behaviour uncomment the line below. |
| 70 | # config.infer_spec_type_from_file_location! |
| 71 | |
| 72 | # Filter lines from Rails gems in backtraces. |
| 73 | config.filter_rails_from_backtrace! |
| 74 | # arbitrary gems may also be filtered via: |
| 75 | # config.filter_gems_from_backtrace("gem name") |
| 76 | end |