spree_core 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 (215) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/concerns/spree/ransackable_attributes.rb +6 -1
  3. data/app/models/concerns/spree/user_methods.rb +10 -0
  4. data/app/models/spree/legacy_user.rb +0 -8
  5. data/app/models/spree/order.rb +1 -1
  6. data/app/models/spree/product.rb +8 -0
  7. data/app/models/spree/product/scopes.rb +7 -3
  8. data/app/models/spree/stock_transfer.rb +1 -1
  9. data/config/locales/en.yml +2 -0
  10. data/lib/spree/core/version.rb +1 -1
  11. data/spree_core.gemspec +2 -2
  12. metadata +11 -208
  13. data/spec/fixtures/microdata.html +0 -22
  14. data/spec/fixtures/microdata_itemref.html +0 -15
  15. data/spec/fixtures/microdata_no_itemscope.html +0 -20
  16. data/spec/fixtures/thinking-cat.jpg +0 -0
  17. data/spec/helpers/base_helper_spec.rb +0 -200
  18. data/spec/helpers/products_helper_spec.rb +0 -296
  19. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  20. data/spec/lib/i18n_spec.rb +0 -123
  21. data/spec/lib/search/base_spec.rb +0 -86
  22. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -103
  23. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -110
  24. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  25. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -72
  26. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  27. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  28. data/spec/lib/spree/core/importer/order_spec.rb +0 -605
  29. data/spec/lib/spree/core/number_generator_spec.rb +0 -175
  30. data/spec/lib/spree/core/token_generator_spec.rb +0 -24
  31. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  32. data/spec/lib/spree/core_spec.rb +0 -23
  33. data/spec/lib/spree/localized_number_spec.rb +0 -48
  34. data/spec/lib/spree/migrations_spec.rb +0 -36
  35. data/spec/lib/spree/money_spec.rb +0 -122
  36. data/spec/lib/tasks/exchanges_spec.rb +0 -136
  37. data/spec/mailers/order_mailer_spec.rb +0 -122
  38. data/spec/mailers/reimbursement_mailer_spec.rb +0 -47
  39. data/spec/mailers/shipment_mailer_spec.rb +0 -81
  40. data/spec/mailers/test_mailer_spec.rb +0 -38
  41. data/spec/models/option_type_prototype_spec.rb +0 -9
  42. data/spec/models/spree/ability_spec.rb +0 -251
  43. data/spec/models/spree/address_spec.rb +0 -291
  44. data/spec/models/spree/adjustable/adjuster/base_spec.rb +0 -10
  45. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +0 -211
  46. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +0 -86
  47. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +0 -26
  48. data/spec/models/spree/adjustment_spec.rb +0 -189
  49. data/spec/models/spree/app_configuration_spec.rb +0 -26
  50. data/spec/models/spree/asset_spec.rb +0 -28
  51. data/spec/models/spree/calculator/default_tax_spec.rb +0 -152
  52. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  53. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  54. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  55. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  56. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  57. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -51
  58. data/spec/models/spree/calculator/shipping.rb +0 -8
  59. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  60. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  61. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  62. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  63. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -29
  64. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -40
  65. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -51
  66. data/spec/models/spree/calculator_spec.rb +0 -69
  67. data/spec/models/spree/classification_spec.rb +0 -93
  68. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  69. data/spec/models/spree/concerns/user_methods_spec.rb +0 -55
  70. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +0 -66
  71. data/spec/models/spree/country_spec.rb +0 -55
  72. data/spec/models/spree/credit_card_spec.rb +0 -328
  73. data/spec/models/spree/customer_return_spec.rb +0 -240
  74. data/spec/models/spree/exchange_spec.rb +0 -75
  75. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  76. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  77. data/spec/models/spree/gateway_spec.rb +0 -61
  78. data/spec/models/spree/image_spec.rb +0 -8
  79. data/spec/models/spree/inventory_unit_spec.rb +0 -225
  80. data/spec/models/spree/line_item_spec.rb +0 -327
  81. data/spec/models/spree/option_type_spec.rb +0 -14
  82. data/spec/models/spree/option_value_spec.rb +0 -18
  83. data/spec/models/spree/order/address_spec.rb +0 -50
  84. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  85. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  86. data/spec/models/spree/order/checkout_spec.rb +0 -782
  87. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  88. data/spec/models/spree/order/finalizing_spec.rb +0 -114
  89. data/spec/models/spree/order/helpers_spec.rb +0 -5
  90. data/spec/models/spree/order/payment_spec.rb +0 -214
  91. data/spec/models/spree/order/risk_assessment_spec.rb +0 -84
  92. data/spec/models/spree/order/shipments_spec.rb +0 -43
  93. data/spec/models/spree/order/state_machine_spec.rb +0 -211
  94. data/spec/models/spree/order/store_credit_spec.rb +0 -426
  95. data/spec/models/spree/order/tax_spec.rb +0 -84
  96. data/spec/models/spree/order/totals_spec.rb +0 -24
  97. data/spec/models/spree/order/updating_spec.rb +0 -18
  98. data/spec/models/spree/order/validations_spec.rb +0 -15
  99. data/spec/models/spree/order_contents_spec.rb +0 -297
  100. data/spec/models/spree/order_inventory_spec.rb +0 -238
  101. data/spec/models/spree/order_merger_spec.rb +0 -135
  102. data/spec/models/spree/order_spec.rb +0 -967
  103. data/spec/models/spree/order_updater_spec.rb +0 -305
  104. data/spec/models/spree/payment/gateway_options_spec.rb +0 -127
  105. data/spec/models/spree/payment/store_credit_spec.rb +0 -60
  106. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -291
  107. data/spec/models/spree/payment_method_spec.rb +0 -103
  108. data/spec/models/spree/payment_spec.rb +0 -919
  109. data/spec/models/spree/preference_spec.rb +0 -80
  110. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  111. data/spec/models/spree/preferences/preferable_spec.rb +0 -348
  112. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  113. data/spec/models/spree/preferences/store_spec.rb +0 -46
  114. data/spec/models/spree/price_spec.rb +0 -128
  115. data/spec/models/spree/product/scopes_spec.rb +0 -183
  116. data/spec/models/spree/product_duplicator_spec.rb +0 -103
  117. data/spec/models/spree/product_filter_spec.rb +0 -26
  118. data/spec/models/spree/product_option_type_spec.rb +0 -9
  119. data/spec/models/spree/product_promotion_rule_spec.rb +0 -9
  120. data/spec/models/spree/product_property_spec.rb +0 -22
  121. data/spec/models/spree/product_spec.rb +0 -540
  122. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -50
  123. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -148
  124. data/spec/models/spree/promotion/actions/create_line_items_spec.rb +0 -86
  125. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -36
  126. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  127. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -282
  128. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  129. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -90
  130. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  131. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  132. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  133. data/spec/models/spree/promotion/rules/user_spec.rb +0 -45
  134. data/spec/models/spree/promotion_action_spec.rb +0 -10
  135. data/spec/models/spree/promotion_category_spec.rb +0 -17
  136. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -102
  137. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -323
  138. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -48
  139. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  140. data/spec/models/spree/promotion_rule_spec.rb +0 -29
  141. data/spec/models/spree/promotion_rule_taxon_spec.rb +0 -9
  142. data/spec/models/spree/promotion_rule_user_spec.rb +0 -9
  143. data/spec/models/spree/promotion_spec.rb +0 -644
  144. data/spec/models/spree/property_prototype_spec.rb +0 -9
  145. data/spec/models/spree/property_spec.rb +0 -5
  146. data/spec/models/spree/prototype_spec.rb +0 -5
  147. data/spec/models/spree/prototype_taxon_spec.rb +0 -9
  148. data/spec/models/spree/refund_reason_spec.rb +0 -7
  149. data/spec/models/spree/refund_spec.rb +0 -195
  150. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  151. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  152. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  153. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  154. data/spec/models/spree/reimbursement_spec.rb +0 -188
  155. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -63
  156. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  157. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  158. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -55
  159. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -101
  160. data/spec/models/spree/return_authorization_reason_spec.rb +0 -7
  161. data/spec/models/spree/return_authorization_spec.rb +0 -230
  162. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  163. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  164. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -61
  165. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  166. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  167. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  168. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  169. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  170. data/spec/models/spree/return_item_spec.rb +0 -731
  171. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  172. data/spec/models/spree/role_spec.rb +0 -7
  173. data/spec/models/spree/shipment_spec.rb +0 -740
  174. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  175. data/spec/models/spree/shipping_category_spec.rb +0 -19
  176. data/spec/models/spree/shipping_method_spec.rb +0 -95
  177. data/spec/models/spree/shipping_rate_spec.rb +0 -140
  178. data/spec/models/spree/state_spec.rb +0 -29
  179. data/spec/models/spree/stock/availability_validator_spec.rb +0 -36
  180. data/spec/models/spree/stock/content_item_spec.rb +0 -31
  181. data/spec/models/spree/stock/coordinator_spec.rb +0 -51
  182. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  183. data/spec/models/spree/stock/estimator_spec.rb +0 -202
  184. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
  185. data/spec/models/spree/stock/package_spec.rb +0 -194
  186. data/spec/models/spree/stock/packer_spec.rb +0 -70
  187. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  188. data/spec/models/spree/stock/quantifier_spec.rb +0 -126
  189. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  190. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  191. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -47
  192. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -32
  193. data/spec/models/spree/stock_item_spec.rb +0 -428
  194. data/spec/models/spree/stock_location_spec.rb +0 -243
  195. data/spec/models/spree/stock_movement_spec.rb +0 -56
  196. data/spec/models/spree/stock_transfer_spec.rb +0 -50
  197. data/spec/models/spree/store_credit_event_spec.rb +0 -101
  198. data/spec/models/spree/store_credit_spec.rb +0 -786
  199. data/spec/models/spree/store_spec.rb +0 -78
  200. data/spec/models/spree/tax_category_spec.rb +0 -32
  201. data/spec/models/spree/tax_rate_spec.rb +0 -542
  202. data/spec/models/spree/taxon_spec.rb +0 -74
  203. data/spec/models/spree/taxonomy_spec.rb +0 -18
  204. data/spec/models/spree/tracker_spec.rb +0 -21
  205. data/spec/models/spree/user_spec.rb +0 -203
  206. data/spec/models/spree/variant_spec.rb +0 -795
  207. data/spec/models/spree/zone_member_spec.rb +0 -38
  208. data/spec/models/spree/zone_spec.rb +0 -470
  209. data/spec/spec_helper.rb +0 -77
  210. data/spec/support/big_decimal.rb +0 -5
  211. data/spec/support/concerns/adjustment_source.rb +0 -23
  212. data/spec/support/concerns/default_price.rb +0 -37
  213. data/spec/support/rake.rb +0 -13
  214. data/spec/support/test_gateway.rb +0 -2
  215. data/spec/validators/db_maximum_length_validator_spec.rb +0 -22
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::CalculatedAdjustments do
4
- it "should add has_one :calculator relationship" do
5
- assert Spree::ShippingMethod.reflect_on_all_associations(:has_one).map(&:name).include?(:calculator)
6
- end
7
- end
@@ -1,123 +0,0 @@
1
- require 'rspec/expectations'
2
- require 'spree/i18n'
3
- require 'spree/testing_support/i18n'
4
-
5
- describe "i18n" do
6
- before do
7
- I18n.backend.store_translations(:en,
8
- {
9
- :spree => {
10
- :foo => "bar",
11
- :bar => {
12
- :foo => "bar within bar scope",
13
- :invalid => nil,
14
- :legacy_translation => "back in the day..."
15
- },
16
- :invalid => nil,
17
- :legacy_translation => "back in the day..."
18
- }
19
- })
20
- end
21
-
22
- it "translates within the spree scope" do
23
- expect(Spree.normal_t(:foo)).to eql("bar")
24
- expect(Spree.translate(:foo)).to eql("bar")
25
- end
26
-
27
- it "translates within the spree scope using a path" do
28
- allow(Spree).to receive(:virtual_path).and_return('bar')
29
-
30
- expect(Spree.normal_t('.legacy_translation')).to eql("back in the day...")
31
- expect(Spree.translate('.legacy_translation')).to eql("back in the day...")
32
- end
33
-
34
- it "raise error without any context when using a path" do
35
- expect {
36
- Spree.normal_t('.legacy_translation')
37
- }.to raise_error(StandardError)
38
-
39
- expect {
40
- Spree.translate('.legacy_translation')
41
- }.to raise_error(StandardError)
42
- end
43
-
44
- it "prepends a string scope" do
45
- expect(Spree.normal_t(:foo, :scope => "bar")).to eql("bar within bar scope")
46
- end
47
-
48
- it "prepends to an array scope" do
49
- expect(Spree.normal_t(:foo, :scope => ["bar"])).to eql("bar within bar scope")
50
- end
51
-
52
- it "returns two translations" do
53
- expect(Spree.normal_t([:foo, 'bar.foo'])).to eql(["bar", "bar within bar scope"])
54
- end
55
-
56
- it "returns reasonable string for missing translations" do
57
- expect(Spree.t(:missing_entry)).to include("<span")
58
- end
59
-
60
- context "missed + unused translations" do
61
- def key_with_locale(key)
62
- "#{key} (#{I18n.locale})"
63
- end
64
-
65
- before do
66
- Spree.used_translations = []
67
- end
68
-
69
- context "missed translations" do
70
- def assert_missing_translation(key)
71
- key = key_with_locale(key)
72
- message = Spree.missing_translation_messages.detect { |m| m == key }
73
- expect(message).not_to(be_nil, "expected '#{key}' to be missing, but it wasn't.")
74
- end
75
-
76
- it "logs missing translations" do
77
- Spree.t(:missing, :scope => [:else, :where])
78
- Spree.check_missing_translations
79
- assert_missing_translation("else")
80
- assert_missing_translation("else.where")
81
- assert_missing_translation("else.where.missing")
82
- end
83
-
84
- it "does not log present translations" do
85
- Spree.t(:foo)
86
- Spree.check_missing_translations
87
- expect(Spree.missing_translation_messages).to be_empty
88
- end
89
-
90
- it "does not break when asked for multiple translations" do
91
- Spree.t [:foo, 'bar.foo']
92
- Spree.check_missing_translations
93
- expect(Spree.missing_translation_messages).to be_empty
94
- end
95
- end
96
-
97
- context "unused translations" do
98
- def assert_unused_translation(key)
99
- key = key_with_locale(key)
100
- message = Spree.unused_translation_messages.detect { |m| m == key }
101
- expect(message).not_to(be_nil, "expected '#{key}' to be unused, but it was used.")
102
- end
103
-
104
- def assert_used_translation(key)
105
- key = key_with_locale(key)
106
- message = Spree.unused_translation_messages.detect { |m| m == key }
107
- expect(message).to(be_nil, "expected '#{key}' to be used, but it wasn't.")
108
- end
109
-
110
- it "logs translations that aren't used" do
111
- Spree.check_unused_translations
112
- assert_unused_translation("bar.legacy_translation")
113
- assert_unused_translation("legacy_translation")
114
- end
115
-
116
- it "does not log used translations" do
117
- Spree.t(:foo)
118
- Spree.check_unused_translations
119
- assert_used_translation("foo")
120
- end
121
- end
122
- end
123
- end
@@ -1,86 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::Core::Search::Base do
4
-
5
- before do
6
- include Spree::Core::ProductFilters
7
- @taxon = create(:taxon, name: "Ruby on Rails")
8
-
9
- @product1 = create(:product, name: "RoR Mug", price: 9.00)
10
- @product1.taxons << @taxon
11
- @product2 = create(:product, name: "RoR Shirt", price: 11.00)
12
- end
13
-
14
- it "returns all products by default" do
15
- params = { :per_page => "" }
16
- searcher = Spree::Core::Search::Base.new(params)
17
- expect(searcher.retrieve_products.count).to eq(2)
18
- end
19
-
20
- context "when include_images is included in the initalization params" do
21
- let(:params) { { include_images: true, keyword: @product1.name, taxon: @taxon.id } }
22
- subject { described_class.new(params).retrieve_products }
23
-
24
- before do
25
- @product1.master.images << create(:image, position: 2)
26
- @product1.master.images << create(:image, position: 1)
27
- @product1.reload
28
- end
29
-
30
- it "returns images in correct order" do
31
- expect(subject.first).to eq @product1
32
- expect(subject.first.images).to eq @product1.master.images
33
- end
34
- end
35
-
36
- it "switches to next page according to the page parameter" do
37
- @product3 = create(:product, :name => "RoR Pants", :price => 14.00)
38
-
39
- params = { :per_page => "2" }
40
- searcher = Spree::Core::Search::Base.new(params)
41
- expect(searcher.retrieve_products.count).to eq(2)
42
-
43
- params.merge! :page => "2"
44
- searcher = Spree::Core::Search::Base.new(params)
45
- expect(searcher.retrieve_products.count).to eq(1)
46
- end
47
-
48
- it "maps search params to named scopes" do
49
- params = { :per_page => "",
50
- :search => { "price_range_any" => ["Under $10.00"] }}
51
- searcher = Spree::Core::Search::Base.new(params)
52
- expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
53
- expect(searcher.retrieve_products.count).to eq(1)
54
- end
55
-
56
- it "maps multiple price_range_any filters" do
57
- params = { :per_page => "",
58
- :search => { "price_range_any" => ["Under $10.00", "$10.00 - $15.00"] }}
59
- searcher = Spree::Core::Search::Base.new(params)
60
- expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
61
- expect(searcher.send(:get_base_scope).to_sql).to match /between 10 and 15/i
62
- expect(searcher.retrieve_products.count).to eq(2)
63
- end
64
-
65
- it "uses ransack if scope not found" do
66
- params = { :per_page => "",
67
- :search => { "name_not_cont" => "Shirt" }}
68
- searcher = Spree::Core::Search::Base.new(params)
69
- expect(searcher.retrieve_products.count).to eq(1)
70
- end
71
-
72
- it "accepts a current user" do
73
- user = double
74
- searcher = Spree::Core::Search::Base.new({})
75
- searcher.current_user = user
76
- expect(searcher.current_user).to eql(user)
77
- end
78
-
79
- it "finds products in alternate currencies" do
80
- price = create(:price, :currency => 'EUR', :variant => @product1.master)
81
- searcher = Spree::Core::Search::Base.new({})
82
- searcher.current_currency = 'EUR'
83
- expect(searcher.retrieve_products).to eq([@product1])
84
- end
85
-
86
- end
@@ -1,103 +0,0 @@
1
- require 'spec_helper'
2
- require 'spree/testing_support/url_helpers'
3
-
4
- class FakesController < ApplicationController
5
- include Spree::Core::ControllerHelpers::Auth
6
- def index; render text: 'index'; end
7
- end
8
-
9
- describe Spree::Core::ControllerHelpers::Auth, type: :controller do
10
- controller(FakesController) {}
11
- include Spree::TestingSupport::UrlHelpers
12
-
13
- describe '#current_ability' do
14
- it 'returns Spree::Ability instance' do
15
- expect(controller.current_ability.class).to eq Spree::Ability
16
- end
17
- end
18
-
19
- describe '#redirect_back_or_default' do
20
- controller(FakesController) do
21
- def index; redirect_back_or_default('/'); end
22
- end
23
- it 'redirects to session url' do
24
- session[:spree_user_return_to] = '/redirect'
25
- get :index
26
- expect(response).to redirect_to('/redirect')
27
- end
28
- it 'redirects to HTTP_REFERER' do
29
- request.env["HTTP_REFERER"] = '/dummy_redirect'
30
- get :index
31
- expect(response).to redirect_to('/dummy_redirect')
32
- end
33
- it 'redirects to default page' do
34
- get :index
35
- expect(response).to redirect_to('/')
36
- end
37
- end
38
-
39
- describe '#set_guest_token' do
40
- controller(FakesController) do
41
- def index
42
- set_guest_token
43
- render text: 'index'
44
- end
45
- end
46
- it 'sends cookie header' do
47
- get :index
48
- expect(response.cookies['guest_token']).not_to be_nil
49
- end
50
- end
51
-
52
- describe '#store_location' do
53
- it 'sets session return url' do
54
- allow(controller).to receive_messages(request: double(fullpath: '/redirect'))
55
- controller.store_location
56
- expect(session[:spree_user_return_to]).to eq '/redirect'
57
- end
58
- end
59
-
60
- describe '#try_spree_current_user' do
61
- it 'calls spree_current_user when define spree_current_user method' do
62
- expect(controller).to receive(:spree_current_user)
63
- controller.try_spree_current_user
64
- end
65
- it 'calls current_spree_user when define current_spree_user method' do
66
- expect(controller).to receive(:current_spree_user)
67
- controller.try_spree_current_user
68
- end
69
- it 'returns nil' do
70
- expect(controller.try_spree_current_user).to eq nil
71
- end
72
- end
73
-
74
- describe '#redirect_unauthorized_access' do
75
- controller(FakesController) do
76
- def index; redirect_unauthorized_access; end
77
- end
78
- context 'when logged in' do
79
- before do
80
- allow(controller).to receive_messages(try_spree_current_user: double('User', id: 1, last_incomplete_spree_order: nil))
81
- end
82
- it 'redirects forbidden path' do
83
- get :index
84
- expect(response).to redirect_to(spree.forbidden_path)
85
- end
86
- end
87
- context 'when guest user' do
88
- before do
89
- allow(controller).to receive_messages(try_spree_current_user: nil)
90
- end
91
- it 'redirects login path' do
92
- allow(controller).to receive_messages(spree_login_path: '/login')
93
- get :index
94
- expect(response).to redirect_to('/login')
95
- end
96
- it 'redirects root path' do
97
- allow(controller).to receive_message_chain(:spree, :root_path).and_return('/root_path')
98
- get :index
99
- expect(response).to redirect_to('/root_path')
100
- end
101
- end
102
- end
103
- end
@@ -1,110 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class FakesController < ApplicationController
4
- include Spree::Core::ControllerHelpers::Order
5
- end
6
-
7
- describe Spree::Core::ControllerHelpers::Order, type: :controller do
8
- controller(FakesController) {}
9
-
10
- let(:user) { create(:user) }
11
- let(:order) { create(:order, user: user) }
12
- let(:store) { create(:store) }
13
-
14
- describe '#simple_current_order' do
15
- before { allow(controller).to receive_messages(try_spree_current_user: user) }
16
- it "returns an empty order" do
17
- expect(controller.simple_current_order.item_count).to eq 0
18
- end
19
- it 'returns Spree::Order instance' do
20
- allow(controller).to receive_messages(cookies: double(signed: { guest_token: order.guest_token }))
21
- expect(controller.simple_current_order).to eq order
22
- end
23
- end
24
-
25
- describe '#current_order' do
26
- before {
27
- allow(controller).to receive_messages(current_store: store)
28
- allow(controller).to receive_messages(try_spree_current_user: user)
29
- }
30
- context 'create_order_if_necessary option is false' do
31
- let!(:order) { create :order, user: user }
32
- it 'returns current order' do
33
- expect(controller.current_order).to eq order
34
- end
35
- end
36
- context 'create_order_if_necessary option is true' do
37
- it 'creates new order' do
38
- expect {
39
- controller.current_order(create_order_if_necessary: true)
40
- }.to change(Spree::Order, :count).to(1)
41
- end
42
-
43
- it 'assigns the current_store id' do
44
- controller.current_order(create_order_if_necessary: true)
45
- expect(Spree::Order.last.store_id).to eq store.id
46
- end
47
- end
48
-
49
- context 'gets using the guest_token' do
50
- let!(:order) { create :order, user: user }
51
- let!(:guest_order) { create :order, user: nil, email: nil, guest_token: 'token' }
52
-
53
- before do
54
- expect(controller).to receive(:current_order_params).and_return(
55
- currency: Spree::Config[:currency], guest_token: 'token', store_id: guest_order.store_id, user_id: user.id,
56
- )
57
- end
58
-
59
- specify 'without the guest token being bound to any user yet' do
60
- expect(controller.current_order).to eq guest_order
61
- end
62
- end
63
- end
64
-
65
- describe '#associate_user' do
66
- before do
67
- allow(controller).to receive_messages(current_order: order, try_spree_current_user: user)
68
- end
69
- context "user's email is blank" do
70
- let(:user) { create(:user, email: '') }
71
- it 'calls Spree::Order#associate_user! method' do
72
- expect_any_instance_of(Spree::Order).to receive(:associate_user!)
73
- controller.associate_user
74
- end
75
- end
76
- context "user isn't blank" do
77
- it 'does not calls Spree::Order#associate_user! method' do
78
- expect_any_instance_of(Spree::Order).not_to receive(:associate_user!)
79
- controller.associate_user
80
- end
81
- end
82
- end
83
-
84
- describe '#set_current_order' do
85
- let(:incomplete_order) { create(:order, user: user) }
86
- before { allow(controller).to receive_messages(try_spree_current_user: user) }
87
-
88
- context 'when current order not equal to users incomplete orders' do
89
- before { allow(controller).to receive_messages(current_order: order, last_incomplete_order: incomplete_order, cookies: double(signed: { guest_token: 'guest_token' })) }
90
-
91
- it 'calls Spree::Order#merge! method' do
92
- expect(order).to receive(:merge!).with(incomplete_order, user)
93
- controller.set_current_order
94
- end
95
- end
96
- end
97
-
98
- describe '#current_currency' do
99
- it 'returns current currency' do
100
- Spree::Config[:currency] = 'USD'
101
- expect(controller.current_currency).to eq 'USD'
102
- end
103
- end
104
-
105
- describe '#ip_address' do
106
- it 'returns remote ip' do
107
- expect(controller.ip_address).to eq request.remote_ip
108
- end
109
- end
110
- end
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class FakesController < ApplicationController
4
- include Spree::Core::ControllerHelpers::Search
5
- end
6
-
7
- describe Spree::Core::ControllerHelpers::Search, type: :controller do
8
- controller(FakesController) {}
9
-
10
- describe '#build_searcher' do
11
- it 'returns Spree::Core::Search::Base instance' do
12
- allow(controller).to receive_messages(try_spree_current_user: create(:user),
13
- current_currency: 'USD')
14
- expect(controller.build_searcher({}).class).to eq Spree::Core::Search::Base
15
- end
16
- end
17
- end