Último limpador de banco de dados rspec / capivara

Isso deve ser salvo em algum lugar em spec/support/database_cleaner.rb. Dois recursos principais são: example.metadata[:type]determinar se é um recurso e deve ser executado com truncamento e o segundo é envolver tudo no aroundgancho em vez de before, para executar depois de outro aftergancho – isso me ajudou com alguns desdravos de banco de dados estranhos.

RSpec.configure do |config|
config
.use_transactional_fixtures = false

config
.around(:each) do |example|
DatabaseCleaner.strategy = if example.metadata[:js] || example.metadata[:type] == 'feature'
:truncation
else
:transaction
end
DatabaseCleaner.start

example
.run

Capybara.reset_sessions!
DatabaseCleaner.clean
end
end