diff options
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | Gemfile.lock | 2 | ||||
-rw-r--r-- | spec/support/db_cleaner.rb | 24 |
3 files changed, 15 insertions, 12 deletions
@@ -271,6 +271,7 @@ group :development, :test do gem 'fuubar', '~> 2.0.0' gem 'database_cleaner', '~> 1.5.0' + gem 'database_rewinder', '~> 0.6.4' gem 'factory_girl_rails', '~> 4.6.0' gem 'rspec-rails', '~> 3.5.0' gem 'rspec-retry', '~> 0.4.5' diff --git a/Gemfile.lock b/Gemfile.lock index 396e692847b..5480877f641 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -155,6 +155,7 @@ GEM railties (>= 3.1.0) daemons (1.2.3) database_cleaner (1.5.3) + database_rewinder (0.6.4) debug_inspector (0.0.2) debugger-ruby_core_source (1.3.8) default_value_for (3.0.2) @@ -835,6 +836,7 @@ DEPENDENCIES creole (~> 0.5.0) d3_rails (~> 3.5.0) database_cleaner (~> 1.5.0) + database_rewinder (~> 0.6.4) default_value_for (~> 3.0.0) devise (~> 4.0) devise-two-factor (~> 3.0.0) diff --git a/spec/support/db_cleaner.rb b/spec/support/db_cleaner.rb index ac38e31b77e..33fa2e3fd6f 100644 --- a/spec/support/db_cleaner.rb +++ b/spec/support/db_cleaner.rb @@ -1,21 +1,21 @@ RSpec.configure do |config| config.before(:suite) do - DatabaseCleaner.clean_with(:truncation) - end - - config.before(:each) do DatabaseCleaner.strategy = :transaction + DatabaseRewinder.clean_all end - config.before(:each, js: true) do - DatabaseCleaner.strategy = :truncation - end - - config.before(:each) do - DatabaseCleaner.start + config.before(:each) do |example| + unless example.metadata[:js] + DatabaseCleaner.start + end end - config.append_after(:each) do - DatabaseCleaner.clean + config.append_after(:each) do |example| + if example.metadata[:js] + DatabaseRewinder.clean + else + DatabaseCleaner.clean + DatabaseRewinder.cleaners.each {|c| c.send(:reset) } + end end end |