diff --git a/Gemfile b/Gemfile index ffb0647..ac94878 100644 --- a/Gemfile +++ b/Gemfile @@ -137,6 +137,8 @@ # Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites (http://github.com/colszowka/simplecov) gem 'simplecov', require: false + + gem 'database_cleaner' end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index 5ee5eb0..dd2b87e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -60,6 +60,7 @@ safe_yaml (~> 1.0.0) crass (1.0.4) daemons (1.2.6) + database_cleaner (1.7.0) debug_inspector (0.0.3) devise (4.4.3) bcrypt (~> 3.0) @@ -280,6 +281,7 @@ binding_of_caller byebug contact_us + database_cleaner devise devise_invitable dragonfly diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb new file mode 100644 index 0000000..b483b95 --- /dev/null +++ b/spec/support/database_cleaner.rb @@ -0,0 +1,36 @@ +require 'database_cleaner' + +# Delete previous database entries before running the next specs +RSpec.configure do |config| + + # If there are any tables you wish to exclude from database cleaner, + # add them here: + DATABASE_CLEANER_EXCEPTIONS = %w[] + + options = { pre_count: true, reset_ids: true, except: DATABASE_CLEANER_EXCEPTIONS } + + config.before(:suite) do + DatabaseCleaner.clean_with(:truncation, options) + end + + config.before(:each) do + DatabaseCleaner.strategy = :transaction + end + + config.before(:each, :js => true) do + DatabaseCleaner.strategy = :truncation, options + end + + config.before(:each, :threaded => true) do + DatabaseCleaner.strategy = :truncation, options + end + + config.before(:each) do + DatabaseCleaner.start + end + + config.after(:each) do + DatabaseCleaner.clean + end + +end