Initial commit
This commit is contained in:
52
spec/spec_helper.rb
Normal file
52
spec/spec_helper.rb
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user