summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-03-04 09:40:03 -0700
committermo khan <mo@mokhan.ca>2015-03-04 09:40:03 -0700
commit0fb2802e11714191c872204f27187a418eb6847b (patch)
tree32751c7632a4a12f36a80d1b724ef5f9036a433d
parentfde3785d7a5d35497481f76f9cec2aa4a835df29 (diff)
add database cleaner.
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock2
-rw-r--r--spec/rails_helper.rb2
-rw-r--r--spec/support/database_cleaner.rb21
4 files changed, 25 insertions, 1 deletions
diff --git a/Gemfile b/Gemfile
index 568d11c..8c40922 100644
--- a/Gemfile
+++ b/Gemfile
@@ -49,6 +49,7 @@ group :development, :test do
gem 'lol_dba'
gem 'rspec-rails'
gem 'factory_girl_rails'
+ gem 'database_cleaner'
# fake agent
gem 'listen'
diff --git a/Gemfile.lock b/Gemfile.lock
index 3feef4e..a5c1152 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -60,6 +60,7 @@ GEM
execjs
coffee-script-source (1.9.1)
columnize (0.9.0)
+ database_cleaner (1.4.0)
debug_inspector (0.0.2)
debugger-linecache (1.2.0)
diff-lcs (1.2.5)
@@ -239,6 +240,7 @@ DEPENDENCIES
byebug
chartkick
coffee-rails (~> 4.1.0)
+ database_cleaner
dotenv-rails
factory_girl_rails
foreman
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index b4d9ec7..d93c9ee 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -31,7 +31,7 @@ RSpec.configure do |config|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
- config.use_transactional_fixtures = true
+ config.use_transactional_fixtures = false
# RSpec Rails can automatically mix in different behaviours to your tests
# based on their file location, for example enabling you to call `get` and
diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb
new file mode 100644
index 0000000..5083a47
--- /dev/null
+++ b/spec/support/database_cleaner.rb
@@ -0,0 +1,21 @@
+Rspec.configure do |config|
+ config.before(:suite) do
+ DatabaseCleaner.clean_with(:truncation)
+ end
+
+ config.before(:each) do
+ DatabaseCleaner.strategy = :transaction
+ end
+
+ config.before(:each, js: true) do
+ DatabaseCleaner.strategy = :truncation
+ end
+
+ config.before(:each) do
+ DatabaseCleaner.start
+ end
+
+ config.after(:each) do
+ DatabaseCleaner.clean
+ end
+end