diff --git a/.rspec b/.rspec index 5052887a..d72f9515 100644 --- a/.rspec +++ b/.rspec @@ -1 +1,3 @@ ---color \ No newline at end of file +--color +-r spec_helper +-f documentation diff --git a/Guardfile b/Guardfile index a7e57c1e..9c4a0728 100644 --- a/Guardfile +++ b/Guardfile @@ -1,10 +1,10 @@ -guard "rspec", cmd: "bundle exec rspec", all_on_start: true, all_after_pass: true do - watch("spec/spec_helper.rb") { "spec" } - watch("config/routes.rb") { "spec/controllers" } - watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb"} +guard 'rspec', cmd: 'bundle exec rspec' do + watch('spec/spec_helper.rb') { 'spec' } + watch('config/routes.rb') { 'spec/controllers' } + watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/(.+)_decorator\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/(.*)(\.erb)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" } -end \ No newline at end of file +end diff --git a/spec/controllers/spree/admin/products_controller_decorator_spec.rb b/spec/controllers/spree/admin/products_controller_decorator_spec.rb index 08e3b67e..5fb330ed 100644 --- a/spec/controllers/spree/admin/products_controller_decorator_spec.rb +++ b/spec/controllers/spree/admin/products_controller_decorator_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::Admin::ProductsController do stub_authorization! @@ -18,4 +16,4 @@ expect(controller.send(:model_class)).to eq(Spree::Product) end end -end \ No newline at end of file +end diff --git a/spec/controllers/spree/admin/relations_controller_spec.rb b/spec/controllers/spree/admin/relations_controller_spec.rb index be4f849e..6ad044f7 100644 --- a/spec/controllers/spree/admin/relations_controller_spec.rb +++ b/spec/controllers/spree/admin/relations_controller_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::Admin::RelationsController do stub_authorization! diff --git a/spec/features/spree/admin/product_relation_spec.rb b/spec/features/spree/admin/product_relation_spec.rb index a06a1153..700f0976 100644 --- a/spec/features/spree/admin/product_relation_spec.rb +++ b/spec/features/spree/admin/product_relation_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - feature 'Admin Product Relation', js: true do stub_authorization! @@ -76,4 +74,4 @@ expect(page).not_to have_text other.name end end -end \ No newline at end of file +end diff --git a/spec/features/spree/admin/relation_types_spec.rb b/spec/features/spree/admin/relation_types_spec.rb index 78e9436f..45aaa111 100644 --- a/spec/features/spree/admin/relation_types_spec.rb +++ b/spec/features/spree/admin/relation_types_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - feature 'Admin Manage Relation Types', js: true do stub_authorization! @@ -98,4 +96,4 @@ end end end -end \ No newline at end of file +end diff --git a/spec/models/spree/calculator/related_product_discount_spec.rb b/spec/models/spree/calculator/related_product_discount_spec.rb index e0609fa8..9ad3db7b 100644 --- a/spec/models/spree/calculator/related_product_discount_spec.rb +++ b/spec/models/spree/calculator/related_product_discount_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::Calculator::RelatedProductDiscount do let(:user) { create(:user) } let(:related_product_discount) { Spree::Calculator::RelatedProductDiscount.new } diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb index 99783c39..9e4f6b2b 100644 --- a/spec/models/spree/product_spec.rb +++ b/spec/models/spree/product_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::Product do context 'class' do describe '.relation_types' do diff --git a/spec/models/spree/relation_spec.rb b/spec/models/spree/relation_spec.rb index 62e6dfcd..cd5f3358 100644 --- a/spec/models/spree/relation_spec.rb +++ b/spec/models/spree/relation_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::Relation do context 'relations' do it { should belong_to(:relation_type) } @@ -12,4 +10,4 @@ it { should validate_presence_of(:relatable) } it { should validate_presence_of(:related_to) } end -end \ No newline at end of file +end diff --git a/spec/models/spree/relation_type_spec.rb b/spec/models/spree/relation_type_spec.rb index d13e4f8c..5ee040ec 100644 --- a/spec/models/spree/relation_type_spec.rb +++ b/spec/models/spree/relation_type_spec.rb @@ -1,5 +1,3 @@ -require 'spec_helper' - describe Spree::RelationType do context 'relations' do it { should have_many(:relations).dependent(:destroy) } @@ -17,4 +15,4 @@ }.to raise_error end end -end \ No newline at end of file +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 603d678e..a904d4e5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,45 +1,36 @@ require 'simplecov' -SimpleCov.start 'rails' +SimpleCov.start do + add_filter 'spec' + add_group 'Controllers', 'app/controllers' + add_group 'Overrides', 'app/overrides' + add_group 'Models', 'app/models' + add_group 'Libraries', 'lib' +end -ENV['RAILS_ENV'] = 'test' +ENV['RAILS_ENV'] ||= 'test' -require File.expand_path('../dummy/config/environment.rb', __FILE__) +begin + require File.expand_path('../dummy/config/environment', __FILE__) +rescue LoadError + puts 'Could not load dummy application. Please ensure you have run `bundle exec rake test_app`' + exit +end require 'rspec/rails' -require 'capybara/rspec' -require 'capybara/rails' -require 'capybara/poltergeist' require 'shoulda-matchers' require 'ffaker' -require 'database_cleaner' - -Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f } - -require 'spree/testing_support/factories' - -require 'spree/testing_support/controller_requests' -require 'spree/testing_support/authorization_helpers' -require 'spree/testing_support/url_helpers' -require 'spree/testing_support/capybara_ext' - -FactoryGirl.find_definitions +require 'pry' RSpec.configure do |config| - config.include FactoryGirl::Syntax::Methods - config.include Spree::TestingSupport::ControllerRequests, type: :controller - config.include Spree::TestingSupport::UrlHelpers - - config.mock_with :rspec - config.use_transactional_fixtures = false - - config.before do - DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction - DatabaseCleaner.start - end - - config.after do - DatabaseCleaner.clean - end - - Capybara.javascript_driver = :poltergeist + config.fail_fast = false + config.filter_run focus: true + config.run_all_when_everything_filtered = true + # config.raise_errors_for_deprecations! + config.infer_spec_type_from_file_location! + + # config.expect_with :rspec do |expectations| + # expectations.syntax = :expect + # end end + +Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |file| require file } diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb new file mode 100644 index 00000000..ac5eee46 --- /dev/null +++ b/spec/support/capybara.rb @@ -0,0 +1,17 @@ +require 'capybara/rspec' +require 'capybara/rails' +require 'capybara/poltergeist' + +RSpec.configure do |config| + Capybara.javascript_driver = :poltergeist + + Capybara.register_driver(:poltergeist) do |app| + Capybara::Poltergeist::Driver.new app, js_errors: true, timeout: 30 + end + + config.before(:each, :js) do + if Capybara.javascript_driver == :selenium + page.driver.browser.manage.window.maximize + end + end +end diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb new file mode 100644 index 00000000..2ee49190 --- /dev/null +++ b/spec/support/database_cleaner.rb @@ -0,0 +1,24 @@ +require 'database_cleaner' + +RSpec.configure do |config| + + config.before(:suite) do + DatabaseCleaner.clean_with :truncation + end + + config.before do + DatabaseCleaner.strategy = :transaction + end + + config.before(:each, :js) do + DatabaseCleaner.strategy = :truncation + end + + config.before do + DatabaseCleaner.start + end + + config.after do + DatabaseCleaner.clean + end +end diff --git a/spec/support/factory_girl.rb b/spec/support/factory_girl.rb new file mode 100644 index 00000000..f2784a54 --- /dev/null +++ b/spec/support/factory_girl.rb @@ -0,0 +1,7 @@ +require 'factory_girl' + +FactoryGirl.find_definitions + +RSpec.configure do |config| + config.include FactoryGirl::Syntax::Methods +end diff --git a/spec/support/spree.rb b/spec/support/spree.rb new file mode 100644 index 00000000..20f363c9 --- /dev/null +++ b/spec/support/spree.rb @@ -0,0 +1,10 @@ +require 'spree/testing_support/factories' +require 'spree/testing_support/controller_requests' +require 'spree/testing_support/authorization_helpers' +require 'spree/testing_support/url_helpers' +require 'spree/testing_support/capybara_ext' + +RSpec.configure do |config| + config.include Spree::TestingSupport::ControllerRequests + config.include Spree::TestingSupport::UrlHelpers +end