recipes/rspec.rb in rails3_devise_wizard-0.2.4 vs recipes/rspec.rb in rails3_devise_wizard-0.2.5

- old
+ new

@@ -1,33 +1,41 @@ # Application template recipe for the rails3_devise_wizard. Check for a newer version here: # https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/rspec.rb -gem 'rspec-rails', '>= 2.5.0', :group => [:development, :test] -if recipes.include? 'mongoid' - # use the database_cleaner gem to reset the test database - gem 'database_cleaner', '>= 0.6.6', :group => :test - # include RSpec matchers from the mongoid-rspec gem - gem 'mongoid-rspec', ">= 1.4.1", :group => :test +if config['rspec'] + say_wizard "REMINDER: When creating a Rails app using RSpec..." + say_wizard "you should add the '-T' flag to 'rails new'" + gem 'rspec-rails', '>= 2.5.0', :group => [:development, :test] + if recipes.include? 'mongoid' + # use the database_cleaner gem to reset the test database + gem 'database_cleaner', '>= 0.6.6', :group => :test + # include RSpec matchers from the mongoid-rspec gem + gem 'mongoid-rspec', ">= 1.4.1", :group => :test + end + if config['factory_girl'] + # use the factory_girl gem for test fixtures + gem 'factory_girl_rails', ">= 1.1.beta1", :group => :test + end +else + recipes.delete('rspec') end -if config['factory_girl'] - # use the factory_girl gem for test fixtures - gem 'factory_girl_rails', ">= 1.1.beta1", :group => :test -end # note: there is no need to specify the RSpec generator in the config/application.rb file -after_bundler do - generate 'rspec:install' +if config['rspec'] + after_bundler do + say_wizard "RSpec recipe running 'after bundler'" + generate 'rspec:install' - # remove ActiveRecord artifacts - gsub_file 'spec/spec_helper.rb', /config.fixture_path/, '# config.fixture_path' - gsub_file 'spec/spec_helper.rb', /config.use_transactional_fixtures/, '# config.use_transactional_fixtures' + # remove ActiveRecord artifacts + gsub_file 'spec/spec_helper.rb', /config.fixture_path/, '# config.fixture_path' + gsub_file 'spec/spec_helper.rb', /config.use_transactional_fixtures/, '# config.use_transactional_fixtures' - if recipes.include? 'mongoid' - # reset your application database to a pristine state during testing - inject_into_file 'spec/spec_helper.rb', :before => "\nend" do - <<-RUBY + if recipes.include? 'mongoid' + # reset your application database to a pristine state during testing + inject_into_file 'spec/spec_helper.rb', :before => "\nend" do + <<-RUBY \n # Clean up the database require 'database_cleaner' config.before(:suite) do DatabaseCleaner.strategy = :truncation @@ -36,54 +44,58 @@ config.before(:each) do DatabaseCleaner.clean end RUBY + end end - end - # remove either possible occurrence of "require rails/test_unit/railtie" - gsub_file 'config/application.rb', /require 'rails\/test_unit\/railtie'/, '# require "rails/test_unit/railtie"' - gsub_file 'config/application.rb', /require "rails\/test_unit\/railtie"/, '# require "rails/test_unit/railtie"' + # remove either possible occurrence of "require rails/test_unit/railtie" + gsub_file 'config/application.rb', /require 'rails\/test_unit\/railtie'/, '# require "rails/test_unit/railtie"' + gsub_file 'config/application.rb', /require "rails\/test_unit\/railtie"/, '# require "rails/test_unit/railtie"' - say_wizard "Removing test folder (not needed for RSpec)" - run 'rm -rf test/' + say_wizard "Removing test folder (not needed for RSpec)" + run 'rm -rf test/' - if recipes.include? 'mongoid' - # configure RSpec to use matchers from the mongoid-rspec gem - create_file 'spec/support/mongoid.rb' do - <<-RUBY + if recipes.include? 'mongoid' + # configure RSpec to use matchers from the mongoid-rspec gem + create_file 'spec/support/mongoid.rb' do + <<-RUBY RSpec.configure do |config| config.include Mongoid::Matchers end RUBY + end end - end - if recipes.include? 'devise' - # add Devise test helpers - create_file 'spec/support/devise.rb' do - <<-RUBY + if recipes.include? 'devise' + # add Devise test helpers + create_file 'spec/support/devise.rb' do + <<-RUBY RSpec.configure do |config| config.include Devise::TestHelpers, :type => :controller end RUBY + end end - end + end end __END__ name: RSpec -description: "Use RSpec for unit testing for this Rails app." +description: "Use RSpec instead of TestUnit." author: fortuity exclusive: unit_testing category: testing args: ["-T"] config: + - rspec: + type: boolean + prompt: Would you like to use RSpec instead of TestUnit? - factory_girl: type: boolean - prompt: Install the factory_girl gem for test fixtures? + prompt: Would you like to use factory_girl for test fixtures with RSpec?