Skip to content

Commit 12abeae

Browse files
botandrose-machinebotandrose
authored andcommitted
strip down cucumber scenarios to just use the two most popular adapter gems, and reenable to validate the end-to-end UX.
1 parent 592f2e2 commit 12abeae

26 files changed

+33
-711
lines changed

Diff for: .travis.yml

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
language: ruby
2+
services:
3+
- redis
24
rvm:
35
- 2.5
46
- 2.6

Diff for: Gemfile

+2
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ source "https://rubygems.org"
33
gemspec name: "database_cleaner-core"
44

55
gem "byebug"
6+
gem "database_cleaner-active_record", git: "https://github.com/DatabaseCleaner/database_cleaner-active_record"
7+
gem "database_cleaner-redis", git: "https://github.com/DatabaseCleaner/database_cleaner-redis"

Diff for: Rakefile

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# testing
22
require "rspec/core/rake_task"
33
RSpec::Core::RakeTask.new(:spec)
4-
task :default => :spec
4+
require "cucumber/rake/task"
5+
Cucumber::Rake::Task.new(:features)
6+
task :default => [:spec, :features]
57

68
# releasing
79
require "rake/clean"

Diff for: database_cleaner-core.gemspec

+5
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,10 @@ Gem::Specification.new do |spec|
2525
spec.add_development_dependency 'guard-rspec'
2626
spec.add_development_dependency "listen"
2727
spec.add_development_dependency "rspec"
28+
2829
spec.add_development_dependency "cucumber"
30+
spec.add_development_dependency "activesupport"
31+
spec.add_development_dependency "database_cleaner-active_record"
32+
spec.add_development_dependency "sqlite3"
33+
spec.add_development_dependency "database_cleaner-redis"
2934
end

Diff for: examples/features/example.feature

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Feature: example
2-
In order to test DataBase Cleaner
2+
In order to test DatabaseCleaner
33
Here are some scenarios that rely on the DB being clean!
44

55
Scenario: dirty the db

Diff for: examples/features/step_definitions/activerecord_steps.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#DatabaseCleaner
33
# require "#{File.dirname(__FILE__)}/../../../lib/datamapper_models"
44
#
5-
# DatabaseCleaner[:datamapper, {:connection => :one} ].strategy = :truncation
6-
# DatabaseCleaner[:datamapper, {:connection => :two} ].strategy = :truncation
5+
# DatabaseCleaner[:active_record, connection: :one].strategy = :truncation
6+
# DatabaseCleaner[:active_record, connection: :two].strategy = :truncation
77
end
88

99
When /^I create a widget using activerecord$/ do

Diff for: examples/features/step_definitions/couchpotato_steps.rb

-31
This file was deleted.

Diff for: examples/features/step_definitions/datamapper_steps.rb

-37
This file was deleted.

Diff for: examples/features/step_definitions/mongoid_steps.rb

-23
This file was deleted.

Diff for: examples/features/step_definitions/mongomapper_steps.rb

-31
This file was deleted.

Diff for: examples/features/step_definitions/neo4j_steps.rb

-23
This file was deleted.

Diff for: examples/features/step_definitions/ohm_steps.rb

-31
This file was deleted.

Diff for: examples/features/support/env.rb

+10-28
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
#Hilarious as it seems, this is necessary so bundle exec cucumber works for mongoid cukeage (I'm assuming mongomapper is automatically present because its a git repo)
2-
Object.send(:remove_const, 'MongoMapper') if defined?(::MongoMapper)
3-
41
require 'bundler'
52

63
Bundler.setup
@@ -9,7 +6,6 @@
96

107
DB_DIR = "#{File.dirname(__FILE__)}/../../db"
118

12-
use_gems = ENV['USE_GEMS']
139
orm = ENV['ORM']
1410
another_orm = ENV['ANOTHER_ORM']
1511
strategy = ENV['STRATEGY']
@@ -24,48 +20,34 @@
2420

2521
if orm && strategy
2622
require "#{File.dirname(__FILE__)}/../../lib/#{orm.downcase}_models"
27-
if use_gems
28-
require "database_cleaner-#{orm.underscore}"
29-
else
30-
$:.unshift(File.dirname(__FILE__) + '/../../../lib')
31-
require "database_cleaner-core"
32-
end
23+
require "database_cleaner-#{orm.underscore}"
3324

3425
if another_orm
3526
require "#{File.dirname(__FILE__)}/../../lib/#{another_orm.downcase}_models"
36-
if use_gems
37-
require "database_cleaner-#{another_orm.underscore}"
38-
end
27+
require "database_cleaner-#{another_orm.underscore}"
3928
end
4029

4130
require 'database_cleaner/cucumber'
4231

4332
if multiple_db
44-
DatabaseCleaner.app_root = "#{File.dirname(__FILE__)}/../.."
4533
orm_sym = orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym
4634

4735
case orm_sym
48-
when :mongo_mapper
49-
DatabaseCleaner[ orm_sym, {:connection => 'database_cleaner_test_one'} ].strategy = strategy.to_sym
50-
DatabaseCleaner[ orm_sym, {:connection => 'database_cleaner_test_two'} ].strategy = strategy.to_sym
51-
when :redis, :ohm
52-
DatabaseCleaner[ orm_sym, {:connection => ENV['REDIS_URL_ONE']} ].strategy = strategy.to_sym
53-
DatabaseCleaner[ orm_sym, {:connection => ENV['REDIS_URL_TWO']} ].strategy = strategy.to_sym
36+
when :redis
37+
DatabaseCleaner[orm_sym, connection: ENV['REDIS_URL_ONE']].strategy = strategy.to_sym
38+
DatabaseCleaner[orm_sym, connection: ENV['REDIS_URL_TWO']].strategy = strategy.to_sym
5439
when :active_record
55-
DatabaseCleaner[:active_record, {:model => ActiveRecordWidgetUsingDatabaseOne} ].strategy = strategy.to_sym
56-
DatabaseCleaner[:active_record, {:model => ActiveRecordWidgetUsingDatabaseTwo} ].strategy = strategy.to_sym
57-
else
58-
DatabaseCleaner[ orm_sym, {:connection => :one} ].strategy = strategy.to_sym
59-
DatabaseCleaner[ orm_sym, {:connection => :two} ].strategy = strategy.to_sym
40+
DatabaseCleaner[:active_record, model: ActiveRecordWidgetUsingDatabaseOne].strategy = strategy.to_sym
41+
DatabaseCleaner[:active_record, model: ActiveRecordWidgetUsingDatabaseTwo].strategy = strategy.to_sym
6042
end
6143

6244
elsif another_orm
63-
DatabaseCleaner[ orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym ].strategy = strategy.to_sym
64-
DatabaseCleaner[ another_orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym ].strategy = strategy.to_sym
45+
DatabaseCleaner[ orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym].strategy = strategy.to_sym
46+
DatabaseCleaner[another_orm.gsub(/(.)([A-Z]+)/,'\1_\2').downcase.to_sym].strategy = strategy.to_sym
6547
else
6648
DatabaseCleaner.strategy = strategy.to_sym unless strategy == "default"
6749
end
6850

6951
else
70-
raise "Run 'ORM=ActiveRecord|DataMapper|MongoMapper|CouchPotato|Ohm|Redis [ANOTHER_ORM=...] [MULTIPLE_DBS=true] STRATEGY=transaction|truncation|default cucumber examples/features'"
52+
raise "Run 'ORM=ActiveRecord|Redis [ANOTHER_ORM=...] [MULTIPLE_DBS=true] STRATEGY=transaction|truncation|default cucumber examples/features'"
7153
end

Diff for: examples/lib/couchpotato_models.rb

-61
This file was deleted.

0 commit comments

Comments
 (0)