# frozen_string_literal: true

# require 'database_cleaner'
#
# RSpec.configure do |config|
#   config.use_transactional_fixtures = false
#
#   config.before(:suite) do
#     # https://github.com/DatabaseCleaner/database_cleaner#safeguards
#     DatabaseCleaner.allow_remote_database_url = true
#
#     if config.use_transactional_fixtures?
#       raise(<<-MSG)
#         Delete line `config.use_transactional_fixtures = true` from rails_helper.rb
#         (or set it to false) to prevent uncommitted transactions being used in
#         JavaScript-dependent specs.
#
#         During testing, the app-under-test that the browser driver connects to
#         uses a different database connection to the database connection used by
#         the spec. The app's database connection would not be able to access
#         uncommitted transaction data setup over the spec's database connection.
#       MSG
#     end
#
#     DatabaseCleaner.clean_with(:truncation)
#   end
#
#   config.before(:each) do
#     DatabaseCleaner.strategy = :transaction
#   end
#
#   config.before(:each, type: :feature) do
#     # :rack_test driver's Rack app under test shares database connection
#     # with the specs, so continue to use transaction strategy for speed.
#     driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test
#
#     unless driver_shares_db_connection_with_specs
#       # Driver is probably for an external browser with an app
#       # under test that does *not* share a database connection with the
#       # specs, so use truncation strategy.
#       DatabaseCleaner.strategy = :truncation
#     end
#   end
#
#   config.before(:each) do
#     DatabaseCleaner.start
#   end
#
#   config.append_after(:each) do
#     DatabaseCleaner.clean
#   end
# end
