spree_core 3.3.0.rc1 → 3.3.0.rc2

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 (220) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +1 -1
  3. data/app/mailers/spree/base_mailer.rb +5 -0
  4. data/app/models/spree/ability.rb +4 -1
  5. data/app/models/spree/image.rb +6 -2
  6. data/app/models/spree/order.rb +10 -9
  7. data/app/models/spree/order/payments.rb +1 -1
  8. data/app/models/spree/payment_method/store_credit.rb +4 -0
  9. data/app/models/spree/shipment.rb +2 -0
  10. data/app/views/spree/shared/_base_mailer_header.html.erb +5 -1
  11. data/app/views/spree/shared/_mailer_line_item.html.erb +5 -1
  12. data/config/routes.rb +0 -3
  13. data/lib/spree/core/components.rb +17 -0
  14. data/lib/spree/core/controller_helpers/auth.rb +3 -1
  15. data/lib/spree/core/engine.rb +1 -0
  16. data/lib/spree/core/validators/email.rb +1 -5
  17. data/lib/spree/core/version.rb +1 -1
  18. data/spree_core.gemspec +1 -1
  19. metadata +4 -204
  20. data/lib/spree/testing_support/shoulda_matcher_configuration.rb +0 -6
  21. data/spec/fixtures/thinking-cat.jpg +0 -0
  22. data/spec/helpers/base_helper_spec.rb +0 -200
  23. data/spec/helpers/products_helper_spec.rb +0 -289
  24. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  25. data/spec/lib/i18n_spec.rb +0 -123
  26. data/spec/lib/search/base_spec.rb +0 -86
  27. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -103
  28. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -110
  29. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  30. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -72
  31. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  32. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  33. data/spec/lib/spree/core/importer/order_spec.rb +0 -607
  34. data/spec/lib/spree/core/number_generator_spec.rb +0 -139
  35. data/spec/lib/spree/core/token_generator_spec.rb +0 -24
  36. data/spec/lib/spree/core/validators/email_spec.rb +0 -54
  37. data/spec/lib/spree/core_spec.rb +0 -23
  38. data/spec/lib/spree/localized_number_spec.rb +0 -54
  39. data/spec/lib/spree/migrations_spec.rb +0 -36
  40. data/spec/lib/spree/money_spec.rb +0 -122
  41. data/spec/lib/tasks/exchanges_spec.rb +0 -136
  42. data/spec/mailers/order_mailer_spec.rb +0 -122
  43. data/spec/mailers/reimbursement_mailer_spec.rb +0 -52
  44. data/spec/mailers/shipment_mailer_spec.rb +0 -81
  45. data/spec/mailers/test_mailer_spec.rb +0 -38
  46. data/spec/models/spree/ability_spec.rb +0 -251
  47. data/spec/models/spree/address_spec.rb +0 -402
  48. data/spec/models/spree/adjustable/adjuster/base_spec.rb +0 -10
  49. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +0 -211
  50. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +0 -86
  51. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +0 -26
  52. data/spec/models/spree/adjustment_spec.rb +0 -189
  53. data/spec/models/spree/app_configuration_spec.rb +0 -26
  54. data/spec/models/spree/asset_spec.rb +0 -28
  55. data/spec/models/spree/calculator/default_tax_spec.rb +0 -152
  56. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  57. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  58. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  59. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  60. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  61. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -47
  62. data/spec/models/spree/calculator/shipping.rb +0 -8
  63. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  64. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  65. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  66. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  67. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -29
  68. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -40
  69. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -51
  70. data/spec/models/spree/calculator_spec.rb +0 -69
  71. data/spec/models/spree/classification_spec.rb +0 -93
  72. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  73. data/spec/models/spree/concerns/user_methods_spec.rb +0 -82
  74. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +0 -66
  75. data/spec/models/spree/country_spec.rb +0 -55
  76. data/spec/models/spree/credit_card_spec.rb +0 -328
  77. data/spec/models/spree/customer_return_spec.rb +0 -240
  78. data/spec/models/spree/exchange_spec.rb +0 -75
  79. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  80. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  81. data/spec/models/spree/gateway_spec.rb +0 -61
  82. data/spec/models/spree/image_spec.rb +0 -8
  83. data/spec/models/spree/inventory_unit_spec.rb +0 -256
  84. data/spec/models/spree/line_item_spec.rb +0 -348
  85. data/spec/models/spree/option_type_prototype_spec.rb +0 -9
  86. data/spec/models/spree/option_type_spec.rb +0 -14
  87. data/spec/models/spree/option_value_spec.rb +0 -18
  88. data/spec/models/spree/order/address_spec.rb +0 -50
  89. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  90. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  91. data/spec/models/spree/order/checkout_spec.rb +0 -770
  92. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  93. data/spec/models/spree/order/finalizing_spec.rb +0 -114
  94. data/spec/models/spree/order/helpers_spec.rb +0 -5
  95. data/spec/models/spree/order/payment_spec.rb +0 -214
  96. data/spec/models/spree/order/risk_assessment_spec.rb +0 -84
  97. data/spec/models/spree/order/shipments_spec.rb +0 -43
  98. data/spec/models/spree/order/state_machine_spec.rb +0 -212
  99. data/spec/models/spree/order/store_credit_spec.rb +0 -457
  100. data/spec/models/spree/order/tax_spec.rb +0 -84
  101. data/spec/models/spree/order/totals_spec.rb +0 -24
  102. data/spec/models/spree/order/updating_spec.rb +0 -18
  103. data/spec/models/spree/order/validations_spec.rb +0 -15
  104. data/spec/models/spree/order_contents_spec.rb +0 -332
  105. data/spec/models/spree/order_inventory_spec.rb +0 -247
  106. data/spec/models/spree/order_merger_spec.rb +0 -135
  107. data/spec/models/spree/order_spec.rb +0 -1067
  108. data/spec/models/spree/order_updater_spec.rb +0 -305
  109. data/spec/models/spree/payment/gateway_options_spec.rb +0 -127
  110. data/spec/models/spree/payment/store_credit_spec.rb +0 -60
  111. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -291
  112. data/spec/models/spree/payment_method_spec.rb +0 -108
  113. data/spec/models/spree/payment_spec.rb +0 -922
  114. data/spec/models/spree/preference_spec.rb +0 -80
  115. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  116. data/spec/models/spree/preferences/preferable_spec.rb +0 -344
  117. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  118. data/spec/models/spree/preferences/store_spec.rb +0 -46
  119. data/spec/models/spree/price_spec.rb +0 -128
  120. data/spec/models/spree/product/scopes_spec.rb +0 -174
  121. data/spec/models/spree/product_duplicator_spec.rb +0 -102
  122. data/spec/models/spree/product_filter_spec.rb +0 -26
  123. data/spec/models/spree/product_option_type_spec.rb +0 -9
  124. data/spec/models/spree/product_promotion_rule_spec.rb +0 -9
  125. data/spec/models/spree/product_property_spec.rb +0 -26
  126. data/spec/models/spree/product_spec.rb +0 -626
  127. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -113
  128. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -148
  129. data/spec/models/spree/promotion/actions/create_line_items_spec.rb +0 -86
  130. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -36
  131. data/spec/models/spree/promotion/rules/country_spec.rb +0 -36
  132. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  133. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -282
  134. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  135. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -90
  136. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  137. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  138. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  139. data/spec/models/spree/promotion/rules/user_spec.rb +0 -45
  140. data/spec/models/spree/promotion_action_spec.rb +0 -10
  141. data/spec/models/spree/promotion_category_spec.rb +0 -17
  142. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -102
  143. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -323
  144. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -48
  145. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  146. data/spec/models/spree/promotion_rule_spec.rb +0 -29
  147. data/spec/models/spree/promotion_rule_taxon_spec.rb +0 -9
  148. data/spec/models/spree/promotion_rule_user_spec.rb +0 -9
  149. data/spec/models/spree/promotion_spec.rb +0 -674
  150. data/spec/models/spree/property_prototype_spec.rb +0 -9
  151. data/spec/models/spree/property_spec.rb +0 -5
  152. data/spec/models/spree/prototype_spec.rb +0 -5
  153. data/spec/models/spree/prototype_taxon_spec.rb +0 -9
  154. data/spec/models/spree/refund_reason_spec.rb +0 -20
  155. data/spec/models/spree/refund_spec.rb +0 -195
  156. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  157. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  158. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  159. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  160. data/spec/models/spree/reimbursement_spec.rb +0 -188
  161. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -63
  162. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  163. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  164. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -55
  165. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -101
  166. data/spec/models/spree/return_authorization_reason_spec.rb +0 -7
  167. data/spec/models/spree/return_authorization_spec.rb +0 -230
  168. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  169. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  170. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -61
  171. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  172. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  173. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  174. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  175. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  176. data/spec/models/spree/return_item_spec.rb +0 -734
  177. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  178. data/spec/models/spree/role_spec.rb +0 -7
  179. data/spec/models/spree/shipment_spec.rb +0 -744
  180. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  181. data/spec/models/spree/shipping_category_spec.rb +0 -19
  182. data/spec/models/spree/shipping_method_spec.rb +0 -125
  183. data/spec/models/spree/shipping_rate_spec.rb +0 -140
  184. data/spec/models/spree/state_spec.rb +0 -29
  185. data/spec/models/spree/stock/availability_validator_spec.rb +0 -42
  186. data/spec/models/spree/stock/content_item_spec.rb +0 -31
  187. data/spec/models/spree/stock/coordinator_spec.rb +0 -61
  188. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  189. data/spec/models/spree/stock/estimator_spec.rb +0 -202
  190. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -37
  191. data/spec/models/spree/stock/package_spec.rb +0 -182
  192. data/spec/models/spree/stock/packer_spec.rb +0 -70
  193. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  194. data/spec/models/spree/stock/quantifier_spec.rb +0 -126
  195. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  196. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  197. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -47
  198. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -32
  199. data/spec/models/spree/stock_item_spec.rb +0 -465
  200. data/spec/models/spree/stock_location_spec.rb +0 -243
  201. data/spec/models/spree/stock_movement_spec.rb +0 -120
  202. data/spec/models/spree/stock_transfer_spec.rb +0 -50
  203. data/spec/models/spree/store_credit_event_spec.rb +0 -101
  204. data/spec/models/spree/store_credit_spec.rb +0 -798
  205. data/spec/models/spree/store_spec.rb +0 -78
  206. data/spec/models/spree/tax_category_spec.rb +0 -32
  207. data/spec/models/spree/tax_rate_spec.rb +0 -561
  208. data/spec/models/spree/taxon_spec.rb +0 -93
  209. data/spec/models/spree/taxonomy_spec.rb +0 -18
  210. data/spec/models/spree/tracker_spec.rb +0 -21
  211. data/spec/models/spree/user_spec.rb +0 -203
  212. data/spec/models/spree/variant_spec.rb +0 -818
  213. data/spec/models/spree/zone_member_spec.rb +0 -38
  214. data/spec/models/spree/zone_spec.rb +0 -472
  215. data/spec/spec_helper.rb +0 -82
  216. data/spec/support/big_decimal.rb +0 -5
  217. data/spec/support/concerns/adjustment_source.rb +0 -23
  218. data/spec/support/concerns/default_price.rb +0 -37
  219. data/spec/support/rake.rb +0 -13
  220. data/spec/support/test_gateway.rb +0 -2
@@ -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(ActionController::Parameters.new(params))
41
- expect(searcher.retrieve_products.count).to eq(2)
42
-
43
- params.merge! page: "2"
44
- searcher = Spree::Core::Search::Base.new(ActionController::Parameters.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(ActionController::Parameters.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(ActionController::Parameters.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(ActionController::Parameters.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 plain: '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 plain: '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