spree_frontend 3.1.5 → 3.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/products_controller.rb +1 -1
  3. data/app/views/spree/shared/_taxonomies.html.erb +4 -2
  4. data/spree_frontend.gemspec +1 -2
  5. metadata +8 -84
  6. data/spec/controllers/controller_extension_spec.rb +0 -126
  7. data/spec/controllers/controller_helpers_spec.rb +0 -122
  8. data/spec/controllers/spree/checkout_controller_spec.rb +0 -462
  9. data/spec/controllers/spree/checkout_controller_with_views_spec.rb +0 -36
  10. data/spec/controllers/spree/content_controller_spec.rb +0 -12
  11. data/spec/controllers/spree/current_order_tracking_spec.rb +0 -44
  12. data/spec/controllers/spree/home_controller_spec.rb +0 -47
  13. data/spec/controllers/spree/orders_controller_ability_spec.rb +0 -96
  14. data/spec/controllers/spree/orders_controller_spec.rb +0 -134
  15. data/spec/controllers/spree/orders_controller_transitions_spec.rb +0 -31
  16. data/spec/controllers/spree/products_controller_spec.rb +0 -87
  17. data/spec/controllers/spree/taxons_controller_spec.rb +0 -12
  18. data/spec/features/address_spec.rb +0 -93
  19. data/spec/features/automatic_promotion_adjustments_spec.rb +0 -47
  20. data/spec/features/caching/products_spec.rb +0 -59
  21. data/spec/features/caching/taxons_spec.rb +0 -22
  22. data/spec/features/cart_spec.rb +0 -90
  23. data/spec/features/checkout_spec.rb +0 -572
  24. data/spec/features/checkout_unshippable_spec.rb +0 -34
  25. data/spec/features/coupon_code_spec.rb +0 -88
  26. data/spec/features/currency_spec.rb +0 -18
  27. data/spec/features/free_shipping_promotions_spec.rb +0 -59
  28. data/spec/features/locale_spec.rb +0 -60
  29. data/spec/features/microdata_spec.rb +0 -0
  30. data/spec/features/order_spec.rb +0 -74
  31. data/spec/features/page_promotions_spec.rb +0 -36
  32. data/spec/features/products_spec.rb +0 -334
  33. data/spec/features/taxons_spec.rb +0 -147
  34. data/spec/features/template_rendering_spec.rb +0 -19
  35. data/spec/fixtures/thinking-cat.jpg +0 -0
  36. data/spec/helpers/frontend_helper_spec.rb +0 -57
  37. data/spec/helpers/order_helper_spec.rb +0 -12
  38. data/spec/helpers/taxons_helper_spec.rb +0 -17
  39. data/spec/spec_helper.rb +0 -126
  40. data/spec/support/shared_contexts/checkout_setup.rb +0 -10
  41. data/spec/support/shared_contexts/custom_products.rb +0 -25
  42. data/spec/support/shared_contexts/product_prototypes.rb +0 -30
  43. data/spec/views/spree/checkout/_summary_spec.rb +0 -11
@@ -1,147 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "viewing products", type: :feature, inaccessible: true do
4
- let!(:taxonomy) { create(:taxonomy, name: "Category") }
5
- let!(:super_clothing) { taxonomy.root.children.create(name: "Super Clothing") }
6
- let!(:t_shirts) { super_clothing.children.create(name: "T-Shirts") }
7
- let!(:xxl) { t_shirts.children.create(name: "XXL") }
8
- let!(:product) do
9
- product = create(:product, name: "Superman T-Shirt")
10
- product.taxons << t_shirts
11
- end
12
- let(:metas) { { meta_description: 'Brand new Ruby on Rails TShirts', meta_title: "Ruby On Rails TShirt", meta_keywords: 'ror, tshirt, ruby' } }
13
- let(:store_name) do
14
- ((first_store = Spree::Store.first) && first_store.name).to_s
15
- end
16
-
17
- # Regression test for #1796
18
- it "can see a taxon's products, even if that taxon has child taxons" do
19
- visit '/t/category/super-clothing/t-shirts'
20
- expect(page).to have_content("Superman T-Shirt")
21
- end
22
-
23
- it "shouldn't show nested taxons with a search" do
24
- visit '/t/category/super-clothing?keywords=shirt'
25
- expect(page).to have_content("Superman T-Shirt")
26
- expect(page).not_to have_selector("div[data-hook='taxon_children']")
27
- end
28
-
29
- describe 'breadcrumbs' do
30
- before do
31
- visit '/t/category/super-clothing/t-shirts'
32
- end
33
- it "should render breadcrumbs" do
34
- expect(page.find("#breadcrumbs")).to have_link("T-Shirts")
35
- end
36
- it "should mark last breadcrumb as active" do
37
- expect(page.find('#breadcrumbs .active')).to have_link("T-Shirts")
38
- end
39
- end
40
-
41
- describe 'meta tags and title' do
42
- it 'displays metas' do
43
- t_shirts.update_attributes metas
44
- visit '/t/category/super-clothing/t-shirts'
45
- expect(page).to have_meta(:description, 'Brand new Ruby on Rails TShirts')
46
- expect(page).to have_meta(:keywords, 'ror, tshirt, ruby')
47
- end
48
-
49
- it 'display title if set' do
50
- t_shirts.update_attributes metas
51
- visit '/t/category/super-clothing/t-shirts'
52
- expect(page).to have_title("Ruby On Rails TShirt")
53
- end
54
-
55
- it 'displays title from taxon root and taxon name' do
56
- visit '/t/category/super-clothing/t-shirts'
57
- expect(page).to have_title('Category - T-Shirts - ' + store_name)
58
- end
59
-
60
- # Regression test for #2814
61
- it "doesn't use meta_title as heading on page" do
62
- t_shirts.update_attributes metas
63
- visit '/t/category/super-clothing/t-shirts'
64
- within("h1.taxon-title") do
65
- expect(page).to have_content(t_shirts.name)
66
- end
67
- end
68
-
69
- it 'uses taxon name in title when meta_title set to empty string' do
70
- t_shirts.update_attributes meta_title: ''
71
- visit '/t/category/super-clothing/t-shirts'
72
- expect(page).to have_title('Category - T-Shirts - ' + store_name)
73
- end
74
- end
75
-
76
- context "taxon pages" do
77
- include_context "custom products"
78
- before do
79
- visit spree.root_path
80
- end
81
-
82
- it "should be able to visit brand Ruby on Rails" do
83
- within(:css, '#taxonomies') { click_link "Ruby on Rails" }
84
-
85
- expect(page.all('#products .product-list-item').size).to eq(7)
86
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
87
- tmp.delete("")
88
- array = ["Ruby on Rails Bag",
89
- "Ruby on Rails Baseball Jersey",
90
- "Ruby on Rails Jr. Spaghetti",
91
- "Ruby on Rails Mug",
92
- "Ruby on Rails Ringer T-Shirt",
93
- "Ruby on Rails Stein",
94
- "Ruby on Rails Tote"]
95
- expect(tmp.sort!).to eq(array)
96
- end
97
-
98
- it "should be able to visit brand Ruby" do
99
- within(:css, '#taxonomies') { click_link "Ruby" }
100
-
101
- expect(page.all('#products .product-list-item').size).to eq(1)
102
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
103
- tmp.delete("")
104
- expect(tmp.sort!).to eq(["Ruby Baseball Jersey"])
105
- end
106
-
107
- it "should be able to visit brand Apache" do
108
- within(:css, '#taxonomies') { click_link "Apache" }
109
-
110
- expect(page.all('#products .product-list-item').size).to eq(1)
111
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
112
- tmp.delete("")
113
- expect(tmp.sort!).to eq(["Apache Baseball Jersey"])
114
- end
115
-
116
- it "should be able to visit category Clothing" do
117
- click_link "Clothing"
118
-
119
- expect(page.all('#products .product-list-item').size).to eq(5)
120
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
121
- tmp.delete("")
122
- expect(tmp.sort!).to eq(["Apache Baseball Jersey",
123
- "Ruby Baseball Jersey",
124
- "Ruby on Rails Baseball Jersey",
125
- "Ruby on Rails Jr. Spaghetti",
126
- "Ruby on Rails Ringer T-Shirt"])
127
- end
128
-
129
- it "should be able to visit category Mugs" do
130
- click_link "Mugs"
131
-
132
- expect(page.all('#products .product-list-item').size).to eq(2)
133
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
134
- tmp.delete("")
135
- expect(tmp.sort!).to eq(["Ruby on Rails Mug", "Ruby on Rails Stein"])
136
- end
137
-
138
- it "should be able to visit category Bags" do
139
- click_link "Bags"
140
-
141
- expect(page.all('#products .product-list-item').size).to eq(2)
142
- tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
143
- tmp.delete("")
144
- expect(tmp.sort!).to eq(["Ruby on Rails Bag", "Ruby on Rails Tote"])
145
- end
146
- end
147
- end
@@ -1,19 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Template rendering", type: :feature do
4
-
5
- after do
6
- Capybara.ignore_hidden_elements = true
7
- end
8
-
9
- before do
10
- Capybara.ignore_hidden_elements = false
11
- end
12
-
13
- it 'layout should have canonical tag referencing site url' do
14
- Spree::Store.create!(code: 'spree', name: 'My Spree Store', url: 'spreestore.example.com', mail_from_address: 'test@example.com')
15
-
16
- visit spree.root_path
17
- expect(find('link[rel=canonical]')[:href]).to eql('http://spreestore.example.com/')
18
- end
19
- end
@@ -1,57 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe FrontendHelper, type: :helper do
5
- # Regression test for #2034
6
- context "flash_message" do
7
- let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } }
8
-
9
- it "should output all flash content" do
10
- flash_messages
11
- html = Nokogiri::HTML(helper.output_buffer)
12
- expect(html.css(".alert-notice").text).to eq("ok")
13
- expect(html.css(".alert-foo").text).to eq("foo")
14
- expect(html.css(".alert-bar").text).to eq("bar")
15
- end
16
-
17
- it "should output flash content except one key" do
18
- flash_messages(ignore_types: :bar)
19
- html = Nokogiri::HTML(helper.output_buffer)
20
- expect(html.css(".alert-notice").text).to eq("ok")
21
- expect(html.css(".alert-foo").text).to eq("foo")
22
- expect(html.css(".alert-bar").text).to be_empty
23
- end
24
-
25
- it "should output flash content except some keys" do
26
- flash_messages(ignore_types: [:foo, :bar])
27
- html = Nokogiri::HTML(helper.output_buffer)
28
- expect(html.css(".alert-notice").text).to eq("ok")
29
- expect(html.css(".alert-foo").text).to be_empty
30
- expect(html.css(".alert-bar").text).to be_empty
31
- expect(helper.output_buffer).to eq("<div class=\"alert alert-notice\">ok</div>")
32
- end
33
- end
34
-
35
- # Regression test for #2759
36
- it "nested_taxons_path works with a Taxon object" do
37
- taxon = create(:taxon, name: "iphone")
38
- expect(spree.nested_taxons_path(taxon)).to eq("/t/iphone")
39
- end
40
-
41
- context '#checkout_progress' do
42
- before do
43
- @order = create(:order, state: 'address')
44
- end
45
-
46
- it 'does not include numbers by default' do
47
- output = checkout_progress
48
- expect(output).to_not include('1.')
49
- end
50
-
51
- it 'has option to include numbers' do
52
- output = checkout_progress(numbers: true)
53
- expect(output).to include('1.')
54
- end
55
- end
56
- end
57
- end
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Spree::OrdersHelper, :type => :helper do
5
- # Regression test for #2518 + #2323
6
- it "truncates HTML correctly in product description" do
7
- product = double(:description => "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
8
- expected = "<strong>" + ("a" * 95) + "</strong>..."
9
- expect(truncated_product_description(product)).to eq(expected)
10
- end
11
- end
12
- end
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::TaxonsHelper, :type => :helper do
4
- # Regression test for #4382
5
- it "#taxon_preview" do
6
- taxon = create(:taxon)
7
- child_taxon = create(:taxon, parent: taxon)
8
- product_1 = create(:product)
9
- product_2 = create(:product)
10
- product_3 = create(:product)
11
- taxon.products << product_1
12
- taxon.products << product_2
13
- child_taxon.products << product_3
14
-
15
- expect(taxon_preview(taxon.reload)).to eql([product_1, product_2, product_3])
16
- end
17
- end
@@ -1,126 +0,0 @@
1
- if ENV["COVERAGE"]
2
- # Run Coverage report
3
- require 'simplecov'
4
- SimpleCov.start do
5
- add_group 'Controllers', 'app/controllers'
6
- add_group 'Helpers', 'app/helpers'
7
- add_group 'Mailers', 'app/mailers'
8
- add_group 'Models', 'app/models'
9
- add_group 'Views', 'app/views'
10
- add_group 'Libraries', 'lib'
11
- end
12
- end
13
-
14
- # This file is copied to ~/spec when you run 'ruby script/generate rspec'
15
- # from the project root directory.
16
- ENV["RAILS_ENV"] ||= 'test'
17
-
18
- begin
19
- require File.expand_path("../dummy/config/environment", __FILE__)
20
- rescue LoadError
21
- puts "Could not load dummy application. Please ensure you have run `bundle exec rake test_app`"
22
- exit
23
- end
24
-
25
- require 'rspec/rails'
26
- require 'ffaker'
27
-
28
- # Requires supporting files with custom matchers and macros, etc,
29
- # in ./support/ and its subdirectories.
30
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
31
-
32
- require 'database_cleaner'
33
-
34
- if ENV["CHECK_TRANSLATIONS"]
35
- require "spree/testing_support/i18n"
36
- end
37
-
38
- require 'spree/testing_support/authorization_helpers'
39
- require 'spree/testing_support/capybara_ext'
40
- require 'spree/testing_support/factories'
41
- require 'spree/testing_support/preferences'
42
- require 'spree/testing_support/controller_requests'
43
- require 'spree/testing_support/flash'
44
- require 'spree/testing_support/url_helpers'
45
- require 'spree/testing_support/order_walkthrough'
46
- require 'spree/testing_support/caching'
47
- require 'spree/testing_support/shoulda_matcher_configuration'
48
- require 'spree/testing_support/microdata'
49
-
50
- require 'paperclip/matchers'
51
-
52
- require 'capybara-screenshot/rspec'
53
- Capybara.save_and_open_page_path = ENV['CIRCLE_ARTIFACTS'] if ENV['CIRCLE_ARTIFACTS']
54
-
55
- if ENV['WEBDRIVER'] == 'accessible'
56
- require 'capybara/accessible'
57
- Capybara.javascript_driver = :accessible
58
- else
59
- require 'capybara/poltergeist'
60
- Capybara.javascript_driver = :poltergeist
61
- end
62
-
63
- RSpec.configure do |config|
64
- config.color = true
65
- config.fail_fast = ENV['FAIL_FAST'] || false
66
- config.fixture_path = File.join(File.expand_path(File.dirname(__FILE__)), "fixtures")
67
- config.infer_spec_type_from_file_location!
68
- config.mock_with :rspec
69
- config.raise_errors_for_deprecations!
70
-
71
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
72
- # examples within a transaction, comment the following line or assign false
73
- # instead of true.
74
- config.use_transactional_fixtures = false
75
-
76
- if ENV['WEBDRIVER'] == 'accessible'
77
- config.around(:each, :inaccessible => true) do |example|
78
- Capybara::Accessible.skip_audit { example.run }
79
- end
80
- end
81
-
82
- # Ensure DB is clean, so that transaction isolated specs see
83
- # pristine state.
84
- config.before(:suite) do
85
- DatabaseCleaner.strategy = :truncation
86
- DatabaseCleaner.clean
87
- end
88
-
89
- config.before(:each) do
90
- WebMock.disable!
91
- if RSpec.current_example.metadata[:js]
92
- DatabaseCleaner.strategy = :truncation
93
- else
94
- DatabaseCleaner.strategy = :transaction
95
- end
96
- # TODO: Find out why open_transactions ever gets below 0
97
- # See issue #3428
98
- if ActiveRecord::Base.connection.open_transactions < 0
99
- ActiveRecord::Base.connection.increment_open_transactions
100
- end
101
- DatabaseCleaner.start
102
- reset_spree_preferences
103
- end
104
-
105
- config.after(:each) do
106
- DatabaseCleaner.clean
107
- end
108
-
109
- config.after(:each, :type => :feature) do |example|
110
- missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
111
- if missing_translations.any?
112
- puts "Found missing translations: #{missing_translations.inspect}"
113
- puts "In spec: #{example.location}"
114
- end
115
- end
116
-
117
-
118
- config.include FactoryGirl::Syntax::Methods
119
-
120
- config.include Spree::TestingSupport::Preferences
121
- config.include Spree::TestingSupport::UrlHelpers
122
- config.include Spree::TestingSupport::ControllerRequests, type: :controller
123
- config.include Spree::TestingSupport::Flash
124
-
125
- config.include Paperclip::Shoulda::Matchers
126
- end
@@ -1,10 +0,0 @@
1
- shared_context 'checkout setup' do
2
- let!(:country) { create(:country, states_required: true) }
3
- let!(:state) { create(:state, country: country) }
4
- let!(:shipping_method) { create(:shipping_method) }
5
- let!(:stock_location) { create(:stock_location) }
6
- let!(:mug) { create(:product, name: "RoR Mug") }
7
- let!(:payment_method) { create(:check_payment_method) }
8
- let!(:zone) { create(:zone) }
9
- let!(:store) { create(:store) }
10
- end
@@ -1,25 +0,0 @@
1
- shared_context "custom products" do
2
- before(:each) do
3
- taxonomy = FactoryGirl.create(:taxonomy, :name => 'Categories')
4
- root = taxonomy.root
5
- clothing_taxon = FactoryGirl.create(:taxon, :name => 'Clothing', :parent_id => root.id)
6
- bags_taxon = FactoryGirl.create(:taxon, :name => 'Bags', :parent_id => root.id)
7
- mugs_taxon = FactoryGirl.create(:taxon, :name => 'Mugs', :parent_id => root.id)
8
-
9
- taxonomy = FactoryGirl.create(:taxonomy, :name => 'Brands')
10
- root = taxonomy.root
11
- apache_taxon = FactoryGirl.create(:taxon, :name => 'Apache', :parent_id => root.id)
12
- rails_taxon = FactoryGirl.create(:taxon, :name => 'Ruby on Rails', :parent_id => root.id)
13
- ruby_taxon = FactoryGirl.create(:taxon, :name => 'Ruby', :parent_id => root.id)
14
-
15
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Ringer T-Shirt', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
16
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Mug', :price => '15.99', :taxons => [rails_taxon, mugs_taxon])
17
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Tote', :price => '15.99', :taxons => [rails_taxon, bags_taxon])
18
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Bag', :price => '22.99', :taxons => [rails_taxon, bags_taxon])
19
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Baseball Jersey', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
20
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Stein', :price => '16.99', :taxons => [rails_taxon, mugs_taxon])
21
- FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Jr. Spaghetti', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
22
- FactoryGirl.create(:custom_product, :name => 'Ruby Baseball Jersey', :price => '19.99', :taxons => [ruby_taxon, clothing_taxon])
23
- FactoryGirl.create(:custom_product, :name => 'Apache Baseball Jersey', :price => '19.99', :taxons => [apache_taxon, clothing_taxon])
24
- end
25
- end
@@ -1,30 +0,0 @@
1
- shared_context "product prototype" do
2
-
3
- def build_option_type_with_values(name, values)
4
- ot = FactoryGirl.create(:option_type, :name => name)
5
- values.each do |val|
6
- ot.option_values.create(:name => val.downcase, :presentation => val)
7
- end
8
- ot
9
- end
10
-
11
- let(:product_attributes) do
12
- # FactoryGirl.attributes_for is un-deprecated!
13
- # https://github.com/thoughtbot/factory_girl/issues/274#issuecomment-3592054
14
- FactoryGirl.attributes_for(:base_product)
15
- end
16
-
17
- let(:prototype) do
18
- size = build_option_type_with_values("size", %w(Small Medium Large))
19
- FactoryGirl.create(:prototype, :name => "Size", :option_types => [ size ])
20
- end
21
-
22
- let(:option_values_hash) do
23
- hash = {}
24
- prototype.option_types.each do |i|
25
- hash[i.id.to_s] = i.option_value_ids
26
- end
27
- hash
28
- end
29
-
30
- end