solidus_frontend 1.0.2 → 1.0.3

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.

Potentially problematic release.


This version of solidus_frontend might be problematic. Click here for more details.

Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -0
  3. data/Gemfile +6 -0
  4. data/Rakefile +15 -0
  5. data/script/rails +9 -0
  6. data/solidus_frontend.gemspec +28 -0
  7. data/spec/controllers/controller_extension_spec.rb +126 -0
  8. data/spec/controllers/controller_helpers_spec.rb +26 -0
  9. data/spec/controllers/spree/checkout_controller_spec.rb +401 -0
  10. data/spec/controllers/spree/checkout_controller_with_views_spec.rb +36 -0
  11. data/spec/controllers/spree/content_controller_spec.rb +7 -0
  12. data/spec/controllers/spree/current_order_tracking_spec.rb +44 -0
  13. data/spec/controllers/spree/home_controller_spec.rb +27 -0
  14. data/spec/controllers/spree/orders_controller_ability_spec.rb +104 -0
  15. data/spec/controllers/spree/orders_controller_spec.rb +134 -0
  16. data/spec/controllers/spree/orders_controller_transitions_spec.rb +31 -0
  17. data/spec/controllers/spree/products_controller_spec.rb +36 -0
  18. data/spec/controllers/spree/taxons_controller_spec.rb +12 -0
  19. data/spec/features/address_spec.rb +76 -0
  20. data/spec/features/automatic_promotion_adjustments_spec.rb +47 -0
  21. data/spec/features/caching/products_spec.rb +55 -0
  22. data/spec/features/caching/taxons_spec.rb +22 -0
  23. data/spec/features/cart_spec.rb +81 -0
  24. data/spec/features/checkout_spec.rb +477 -0
  25. data/spec/features/checkout_unshippable_spec.rb +35 -0
  26. data/spec/features/coupon_code_spec.rb +227 -0
  27. data/spec/features/currency_spec.rb +18 -0
  28. data/spec/features/free_shipping_promotions_spec.rb +59 -0
  29. data/spec/features/locale_spec.rb +60 -0
  30. data/spec/features/order_spec.rb +73 -0
  31. data/spec/features/products_spec.rb +260 -0
  32. data/spec/features/promotion_code_invalidation_spec.rb +51 -0
  33. data/spec/features/quantity_promotions_spec.rb +128 -0
  34. data/spec/features/taxons_spec.rb +135 -0
  35. data/spec/features/template_rendering_spec.rb +19 -0
  36. data/spec/fixtures/thinking-cat.jpg +0 -0
  37. data/spec/helpers/base_helper_spec.rb +11 -0
  38. data/spec/spec_helper.rb +121 -0
  39. data/spec/support/shared_contexts/checkout_setup.rb +9 -0
  40. data/spec/support/shared_contexts/custom_products.rb +25 -0
  41. data/spec/support/shared_contexts/product_prototypes.rb +30 -0
  42. data/spec/views/spree/checkout/_summary_spec.rb +11 -0
  43. metadata +47 -6
@@ -0,0 +1,19 @@
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
Binary file
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ module Spree
4
+ describe BaseHelper, :type => :helper do
5
+ # Regression test for #2759
6
+ it "nested_taxons_path works with a Taxon object" do
7
+ taxon = create(:taxon, :name => "iphone")
8
+ expect(spree.nested_taxons_path(taxon)).to eq("/t/iphone")
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,121 @@
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
+ $stderr.puts "Could not load dummy application. Please ensure you have run `bundle exec rake test_app`"
22
+ exit 1
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
+
48
+ require 'paperclip/matchers'
49
+
50
+ if ENV['WEBDRIVER'] == 'accessible'
51
+ require 'capybara/accessible'
52
+ Capybara.javascript_driver = :accessible
53
+ else
54
+ require 'capybara/poltergeist'
55
+ Capybara.javascript_driver = :poltergeist
56
+ end
57
+
58
+ RSpec.configure do |config|
59
+ config.color = true
60
+ config.infer_spec_type_from_file_location!
61
+ config.mock_with :rspec
62
+
63
+ config.fixture_path = File.join(File.expand_path(File.dirname(__FILE__)), "fixtures")
64
+
65
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
66
+ # examples within a transaction, comment the following line or assign false
67
+ # instead of true.
68
+ config.use_transactional_fixtures = false
69
+
70
+ if ENV['WEBDRIVER'] == 'accessible'
71
+ config.around(:each, :inaccessible => true) do |example|
72
+ Capybara::Accessible.skip_audit { example.run }
73
+ end
74
+ end
75
+
76
+ config.before(:suite) do
77
+ DatabaseCleaner.clean_with :truncation
78
+ end
79
+
80
+ config.before(:each) do
81
+ Rails.cache.clear
82
+ reset_spree_preferences
83
+ WebMock.disable!
84
+ if RSpec.current_example.metadata[:js]
85
+ DatabaseCleaner.strategy = :truncation
86
+ else
87
+ DatabaseCleaner.strategy = :transaction
88
+ end
89
+ DatabaseCleaner.start
90
+ end
91
+
92
+ config.after(:each) do
93
+ DatabaseCleaner.clean
94
+ end
95
+
96
+ config.after(:each, :type => :feature) do |example|
97
+ missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
98
+ if missing_translations.any?
99
+ puts "Found missing translations: #{missing_translations.inspect}"
100
+ puts "In spec: #{example.location}"
101
+ end
102
+ end
103
+
104
+
105
+ config.include FactoryGirl::Syntax::Methods
106
+
107
+ config.include Spree::TestingSupport::Preferences
108
+ config.include Spree::TestingSupport::UrlHelpers
109
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
110
+ config.include Spree::TestingSupport::Flash
111
+
112
+ config.include Paperclip::Shoulda::Matchers
113
+
114
+ config.fail_fast = ENV['FAIL_FAST'] || false
115
+
116
+ config.example_status_persistence_file_path = "./spec/examples.txt"
117
+
118
+ config.order = :random
119
+
120
+ Kernel.srand config.seed
121
+ end
@@ -0,0 +1,9 @@
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
+ end
@@ -0,0 +1,25 @@
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
@@ -0,0 +1,30 @@
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
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe "spree/checkout/_summary.html.erb", :type => :view do
4
+ # Regression spec for #4223
5
+ it "does not use the @order instance variable" do
6
+ order = stub_model(Spree::Order)
7
+ expect do
8
+ render :partial => "spree/checkout/summary", :locals => {:order => order}
9
+ end.not_to raise_error
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_frontend
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-23 00:00:00.000000000 Z
11
+ date: 2015-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_api
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.2
19
+ version: 1.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.2
26
+ version: 1.0.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: solidus_core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.2
33
+ version: 1.0.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.2
40
+ version: 1.0.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: canonical-rails
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,8 +86,11 @@ executables: []
86
86
  extensions: []
87
87
  extra_rdoc_files: []
88
88
  files:
89
+ - CHANGELOG.md
90
+ - Gemfile
89
91
  - LICENSE
90
92
  - README.md
93
+ - Rakefile
91
94
  - app/assets/images/credit_cards/amex_cid.gif
92
95
  - app/assets/images/credit_cards/credit_card.gif
93
96
  - app/assets/images/credit_cards/discover_cid.gif
@@ -194,6 +197,44 @@ files:
194
197
  - lib/spree_frontend.rb
195
198
  - lib/tasks/rake_util.rb
196
199
  - lib/tasks/taxon.rake
200
+ - script/rails
201
+ - solidus_frontend.gemspec
202
+ - spec/controllers/controller_extension_spec.rb
203
+ - spec/controllers/controller_helpers_spec.rb
204
+ - spec/controllers/spree/checkout_controller_spec.rb
205
+ - spec/controllers/spree/checkout_controller_with_views_spec.rb
206
+ - spec/controllers/spree/content_controller_spec.rb
207
+ - spec/controllers/spree/current_order_tracking_spec.rb
208
+ - spec/controllers/spree/home_controller_spec.rb
209
+ - spec/controllers/spree/orders_controller_ability_spec.rb
210
+ - spec/controllers/spree/orders_controller_spec.rb
211
+ - spec/controllers/spree/orders_controller_transitions_spec.rb
212
+ - spec/controllers/spree/products_controller_spec.rb
213
+ - spec/controllers/spree/taxons_controller_spec.rb
214
+ - spec/features/address_spec.rb
215
+ - spec/features/automatic_promotion_adjustments_spec.rb
216
+ - spec/features/caching/products_spec.rb
217
+ - spec/features/caching/taxons_spec.rb
218
+ - spec/features/cart_spec.rb
219
+ - spec/features/checkout_spec.rb
220
+ - spec/features/checkout_unshippable_spec.rb
221
+ - spec/features/coupon_code_spec.rb
222
+ - spec/features/currency_spec.rb
223
+ - spec/features/free_shipping_promotions_spec.rb
224
+ - spec/features/locale_spec.rb
225
+ - spec/features/order_spec.rb
226
+ - spec/features/products_spec.rb
227
+ - spec/features/promotion_code_invalidation_spec.rb
228
+ - spec/features/quantity_promotions_spec.rb
229
+ - spec/features/taxons_spec.rb
230
+ - spec/features/template_rendering_spec.rb
231
+ - spec/fixtures/thinking-cat.jpg
232
+ - spec/helpers/base_helper_spec.rb
233
+ - spec/spec_helper.rb
234
+ - spec/support/shared_contexts/checkout_setup.rb
235
+ - spec/support/shared_contexts/custom_products.rb
236
+ - spec/support/shared_contexts/product_prototypes.rb
237
+ - spec/views/spree/checkout/_summary_spec.rb
197
238
  - vendor/assets/images/datepicker/cal.gif
198
239
  - vendor/assets/images/flags/ad.png
199
240
  - vendor/assets/images/flags/ae.png