Make tests work with api logs

This commit is contained in:
Martin Lensment 2015-01-12 15:33:29 +02:00
parent 7b920cac2f
commit 4cb2fc93a6
2 changed files with 41 additions and 8 deletions

View file

@ -1,11 +1,33 @@
namespace :api_log do namespace :api_log do
namespace :schema do namespace :test do
# desc 'Dump additional database schema' namespace :schema do
task :dump => [:environment] do # desc 'Dump additional database schema'
filename = "#{Rails.root}/db/api_log_schema.rb" task :dump => [:environment] do
File.open(filename, 'w:utf-8') do |file| filename = "#{Rails.root}/db/api_log_schema.rb"
ActiveRecord::Base.establish_connection("api_log_#{Rails.env}") File.open(filename, 'w:utf-8') do |file|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file) ActiveRecord::Base.establish_connection(:api_log_development)
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
end
end
# desc 'Purge and load foo_test schema'
task :load => [:environment] do
# like db:test:purge
abcs = ActiveRecord::Base.configurations
ActiveRecord::Base.clear_all_connections!
ActiveRecord::Base.connection.drop_database("api_log_test")
ActiveRecord::Base.connection.create_database("api_log_test", abcs["api_log_test"])
# like db:test:load_schema
ActiveRecord::Base.establish_connection("api_log_test")
ActiveRecord::Schema.verbose = false
load("#{Rails.root}/db/api_log_schema.rb")
end
task :reload => [:environment] do
Rake::Task['api_log:test:schema:dump'].invoke
Rake::Task['api_log:test:schema:load'].invoke
end end
end end
end end

View file

@ -32,7 +32,10 @@ RSpec.configure do |config|
config.use_transactional_fixtures = false config.use_transactional_fixtures = false
config.before(:suite) do config.before(:suite) do
DatabaseCleaner.clean_with(:truncation) ActiveRecord::Base.establish_connection :api_log_test
DatabaseCleaner.strategy = :deletion
ActiveRecord::Base.establish_connection :test
DatabaseCleaner.strategy = :truncation
end end
config.before(:each) do config.before(:each) do
@ -48,10 +51,18 @@ RSpec.configure do |config|
end end
config.before(:each) do config.before(:each) do
ActiveRecord::Base.establish_connection :api_log_test
DatabaseCleaner.start
ActiveRecord::Base.establish_connection :test
DatabaseCleaner.start DatabaseCleaner.start
end end
config.after(:each) do config.after(:each) do
ActiveRecord::Base.establish_connection :api_log_test
DatabaseCleaner.clean
ActiveRecord::Base.establish_connection :test
DatabaseCleaner.clean DatabaseCleaner.clean
end end