Installs database cleaner

- preparation for feature tests with capybara
see:
http://devblog.avdi.org/2012/08/31/configuring-database_cleaner-with-rails-rspec-capybara-and-selenium/
This commit is contained in:
Chrisbr 2014-05-10 15:55:17 +02:00
parent 546977fc02
commit 8aa68fb84a
5 changed files with 33 additions and 7 deletions

View file

@ -76,6 +76,7 @@ group :development, :test do
gem 'rspec', '>= 3.0.0.beta'
gem 'rspec-rails', '>= 3.0.0.beta'
gem 'capybara'
gem 'database_cleaner'
end
# FIXME: We should use http://weblog.rubyonrails.org/2012/3/21/strong-parameters/

View file

@ -81,6 +81,7 @@ GEM
thor
d3_rails (3.4.6)
railties (>= 3.1.0)
database_cleaner (1.2.0)
devise (3.2.4)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
@ -305,6 +306,7 @@ DEPENDENCIES
cocoon
coveralls
d3_rails
database_cleaner
devise
factory_girl_rails
formtastic (~> 2.3.0.rc3)

View file

@ -14,7 +14,7 @@ class User < ActiveRecord::Base
accepts_nested_attributes_for :person
accepts_nested_attributes_for :roles
before_save :setup_role
before_create :setup_role
before_create :create_person
def role?(role)
@ -27,12 +27,14 @@ class User < ActiveRecord::Base
end
def setup_role
if self.id == 1
self.role_ids = [3]
if User.count == 0
admin = Role.where(name: 'Admin').first
self.role_ids = [admin.id] unless admin.nil?
end
if self.role_ids.empty?
self.role_ids = [1]
participant = Role.where(name: 'Participant').first
self.role_ids = [participant.id] unless participant.nil?
end
end

View file

@ -6,7 +6,6 @@ require File.expand_path('../../config/environment', __FILE__)
if Rails.configuration.database_configuration['test']['database'] == ':memory:'
load "#{Rails.root}/db/schema.rb"
load "#{Rails.root}/db/seeds.rb"
end
require 'rspec/rails'
@ -35,7 +34,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
# Run specs in random order to surface order dependencies. If you find an
# order dependency and want to debug it, you can fix the order by providing

View file

@ -0,0 +1,22 @@
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