spree_frontend 3.1.5 → 3.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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