Files
old-gem/spec/spec_helper.rb
2020-01-28 13:31:56 +01:00

53 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require 'bundler'
Bundler.require
require 'simplecov'
SimpleCov.start do
add_filter '/spec/'
end
require 'active_record'
require 'database_cleaner'
require 'dotenv/load'
require 'pg_searchable_regex'
require 'pry'
# requiring support files
Dir[__dir__ + '/support/**/*.rb'].each { |f| require f }
RSpec.configure do |config|
env = Dotenv.parse('.env.test', '.env.test.local')
db_config = {
adapter: 'postgresql',
host: ENV['DATABASE_HOST'] || env['DATABASE_HOST'],
username: ENV['DATABASE_USERNAME'] || env['DATABASE_USERNAME'],
password: ENV['DATABASE_PASSWORD'] || env['DATABASE_PASSWORD'],
database: ENV['DATABASE_NAME'] || env['DATABASE_NAME'],
pool: ENV['DATABASE_POOL'] || env['DATABASE_POOL'],
port: ENV['DATABASE_PORT'] || env['DATABASE_PORT']
}
db_config_admin = db_config.merge(database: 'postgres', schema_search_path: 'public')
config.before(:suite) do
ActiveRecord::Base.establish_connection(db_config_admin)
ActiveRecord::Base.connection.create_database(db_config[:database])
ActiveRecord::Base.establish_connection(db_config)
ActiveRecord::Tasks::DatabaseTasks.load_schema_for(db_config, :ruby, "#{__dir__}/schema.rb")
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
config.around do |example|
DatabaseCleaner.cleaning do
example.run
end
end
config.after(:suite) do
ActiveRecord::Base.establish_connection(db_config_admin)
ActiveRecord::Base.connection.drop_database(db_config[:database])
end
end