spree_core 3.2.1 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/lib/spree/core/version.rb +1 -1
  3. data/spree_core.gemspec +1 -1
  4. metadata +3 -206
  5. data/spec/fixtures/microdata.html +0 -22
  6. data/spec/fixtures/microdata_itemref.html +0 -15
  7. data/spec/fixtures/microdata_no_itemscope.html +0 -20
  8. data/spec/fixtures/thinking-cat.jpg +0 -0
  9. data/spec/helpers/base_helper_spec.rb +0 -200
  10. data/spec/helpers/products_helper_spec.rb +0 -289
  11. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  12. data/spec/lib/i18n_spec.rb +0 -123
  13. data/spec/lib/search/base_spec.rb +0 -86
  14. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -103
  15. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -110
  16. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  17. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -72
  18. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  19. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  20. data/spec/lib/spree/core/importer/order_spec.rb +0 -605
  21. data/spec/lib/spree/core/number_generator_spec.rb +0 -175
  22. data/spec/lib/spree/core/token_generator_spec.rb +0 -24
  23. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  24. data/spec/lib/spree/core_spec.rb +0 -23
  25. data/spec/lib/spree/localized_number_spec.rb +0 -48
  26. data/spec/lib/spree/migrations_spec.rb +0 -36
  27. data/spec/lib/spree/money_spec.rb +0 -122
  28. data/spec/lib/tasks/exchanges_spec.rb +0 -136
  29. data/spec/mailers/order_mailer_spec.rb +0 -122
  30. data/spec/mailers/reimbursement_mailer_spec.rb +0 -47
  31. data/spec/mailers/shipment_mailer_spec.rb +0 -81
  32. data/spec/mailers/test_mailer_spec.rb +0 -38
  33. data/spec/models/option_type_prototype_spec.rb +0 -9
  34. data/spec/models/spree/ability_spec.rb +0 -251
  35. data/spec/models/spree/address_spec.rb +0 -402
  36. data/spec/models/spree/adjustable/adjuster/base_spec.rb +0 -10
  37. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +0 -211
  38. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +0 -86
  39. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +0 -26
  40. data/spec/models/spree/adjustment_spec.rb +0 -189
  41. data/spec/models/spree/app_configuration_spec.rb +0 -26
  42. data/spec/models/spree/asset_spec.rb +0 -28
  43. data/spec/models/spree/calculator/default_tax_spec.rb +0 -152
  44. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  45. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  46. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  47. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  48. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  49. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -47
  50. data/spec/models/spree/calculator/shipping.rb +0 -8
  51. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  52. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  53. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  54. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  55. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -29
  56. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -40
  57. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -51
  58. data/spec/models/spree/calculator_spec.rb +0 -69
  59. data/spec/models/spree/classification_spec.rb +0 -93
  60. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  61. data/spec/models/spree/concerns/user_methods_spec.rb +0 -82
  62. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +0 -66
  63. data/spec/models/spree/country_spec.rb +0 -55
  64. data/spec/models/spree/credit_card_spec.rb +0 -328
  65. data/spec/models/spree/customer_return_spec.rb +0 -240
  66. data/spec/models/spree/exchange_spec.rb +0 -75
  67. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  68. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  69. data/spec/models/spree/gateway_spec.rb +0 -61
  70. data/spec/models/spree/image_spec.rb +0 -8
  71. data/spec/models/spree/inventory_unit_spec.rb +0 -256
  72. data/spec/models/spree/line_item_spec.rb +0 -346
  73. data/spec/models/spree/option_type_spec.rb +0 -14
  74. data/spec/models/spree/option_value_spec.rb +0 -18
  75. data/spec/models/spree/order/address_spec.rb +0 -50
  76. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  77. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  78. data/spec/models/spree/order/checkout_spec.rb +0 -770
  79. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  80. data/spec/models/spree/order/finalizing_spec.rb +0 -114
  81. data/spec/models/spree/order/helpers_spec.rb +0 -5
  82. data/spec/models/spree/order/payment_spec.rb +0 -214
  83. data/spec/models/spree/order/risk_assessment_spec.rb +0 -84
  84. data/spec/models/spree/order/shipments_spec.rb +0 -43
  85. data/spec/models/spree/order/state_machine_spec.rb +0 -212
  86. data/spec/models/spree/order/store_credit_spec.rb +0 -426
  87. data/spec/models/spree/order/tax_spec.rb +0 -84
  88. data/spec/models/spree/order/totals_spec.rb +0 -24
  89. data/spec/models/spree/order/updating_spec.rb +0 -18
  90. data/spec/models/spree/order/validations_spec.rb +0 -15
  91. data/spec/models/spree/order_contents_spec.rb +0 -297
  92. data/spec/models/spree/order_inventory_spec.rb +0 -239
  93. data/spec/models/spree/order_merger_spec.rb +0 -135
  94. data/spec/models/spree/order_spec.rb +0 -1046
  95. data/spec/models/spree/order_updater_spec.rb +0 -305
  96. data/spec/models/spree/payment/gateway_options_spec.rb +0 -127
  97. data/spec/models/spree/payment/store_credit_spec.rb +0 -60
  98. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -291
  99. data/spec/models/spree/payment_method_spec.rb +0 -103
  100. data/spec/models/spree/payment_spec.rb +0 -919
  101. data/spec/models/spree/preference_spec.rb +0 -80
  102. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  103. data/spec/models/spree/preferences/preferable_spec.rb +0 -344
  104. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  105. data/spec/models/spree/preferences/store_spec.rb +0 -46
  106. data/spec/models/spree/price_spec.rb +0 -128
  107. data/spec/models/spree/product/scopes_spec.rb +0 -183
  108. data/spec/models/spree/product_duplicator_spec.rb +0 -103
  109. data/spec/models/spree/product_filter_spec.rb +0 -26
  110. data/spec/models/spree/product_option_type_spec.rb +0 -9
  111. data/spec/models/spree/product_promotion_rule_spec.rb +0 -9
  112. data/spec/models/spree/product_property_spec.rb +0 -26
  113. data/spec/models/spree/product_spec.rb +0 -629
  114. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -113
  115. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -148
  116. data/spec/models/spree/promotion/actions/create_line_items_spec.rb +0 -86
  117. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -36
  118. data/spec/models/spree/promotion/rules/country_spec.rb +0 -36
  119. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  120. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -282
  121. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  122. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -90
  123. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  124. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  125. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  126. data/spec/models/spree/promotion/rules/user_spec.rb +0 -45
  127. data/spec/models/spree/promotion_action_spec.rb +0 -10
  128. data/spec/models/spree/promotion_category_spec.rb +0 -17
  129. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -102
  130. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -323
  131. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -48
  132. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  133. data/spec/models/spree/promotion_rule_spec.rb +0 -29
  134. data/spec/models/spree/promotion_rule_taxon_spec.rb +0 -9
  135. data/spec/models/spree/promotion_rule_user_spec.rb +0 -9
  136. data/spec/models/spree/promotion_spec.rb +0 -679
  137. data/spec/models/spree/property_prototype_spec.rb +0 -9
  138. data/spec/models/spree/property_spec.rb +0 -5
  139. data/spec/models/spree/prototype_spec.rb +0 -5
  140. data/spec/models/spree/prototype_taxon_spec.rb +0 -9
  141. data/spec/models/spree/refund_reason_spec.rb +0 -20
  142. data/spec/models/spree/refund_spec.rb +0 -195
  143. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  144. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  145. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  146. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  147. data/spec/models/spree/reimbursement_spec.rb +0 -188
  148. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -63
  149. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  150. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  151. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -55
  152. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -101
  153. data/spec/models/spree/return_authorization_reason_spec.rb +0 -7
  154. data/spec/models/spree/return_authorization_spec.rb +0 -230
  155. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  156. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  157. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -61
  158. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  159. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  160. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  161. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  162. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  163. data/spec/models/spree/return_item_spec.rb +0 -731
  164. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  165. data/spec/models/spree/role_spec.rb +0 -7
  166. data/spec/models/spree/shipment_spec.rb +0 -742
  167. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  168. data/spec/models/spree/shipping_category_spec.rb +0 -19
  169. data/spec/models/spree/shipping_method_spec.rb +0 -95
  170. data/spec/models/spree/shipping_rate_spec.rb +0 -140
  171. data/spec/models/spree/state_spec.rb +0 -29
  172. data/spec/models/spree/stock/availability_validator_spec.rb +0 -36
  173. data/spec/models/spree/stock/content_item_spec.rb +0 -31
  174. data/spec/models/spree/stock/coordinator_spec.rb +0 -61
  175. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  176. data/spec/models/spree/stock/estimator_spec.rb +0 -202
  177. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
  178. data/spec/models/spree/stock/package_spec.rb +0 -182
  179. data/spec/models/spree/stock/packer_spec.rb +0 -70
  180. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  181. data/spec/models/spree/stock/quantifier_spec.rb +0 -126
  182. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  183. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  184. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -47
  185. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -32
  186. data/spec/models/spree/stock_item_spec.rb +0 -432
  187. data/spec/models/spree/stock_location_spec.rb +0 -243
  188. data/spec/models/spree/stock_movement_spec.rb +0 -120
  189. data/spec/models/spree/stock_transfer_spec.rb +0 -50
  190. data/spec/models/spree/store_credit_event_spec.rb +0 -101
  191. data/spec/models/spree/store_credit_spec.rb +0 -786
  192. data/spec/models/spree/store_spec.rb +0 -78
  193. data/spec/models/spree/tax_category_spec.rb +0 -32
  194. data/spec/models/spree/tax_rate_spec.rb +0 -561
  195. data/spec/models/spree/taxon_spec.rb +0 -85
  196. data/spec/models/spree/taxonomy_spec.rb +0 -18
  197. data/spec/models/spree/tracker_spec.rb +0 -21
  198. data/spec/models/spree/user_spec.rb +0 -203
  199. data/spec/models/spree/variant_spec.rb +0 -818
  200. data/spec/models/spree/zone_member_spec.rb +0 -38
  201. data/spec/models/spree/zone_spec.rb +0 -472
  202. data/spec/spec_helper.rb +0 -79
  203. data/spec/support/big_decimal.rb +0 -5
  204. data/spec/support/concerns/adjustment_source.rb +0 -23
  205. data/spec/support/concerns/default_price.rb +0 -37
  206. data/spec/support/rake.rb +0 -13
  207. data/spec/support/test_gateway.rb +0 -2
@@ -1,289 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "spec_helper"
4
-
5
- module Spree
6
- describe ProductsHelper, type: :helper do
7
- include ProductsHelper
8
-
9
- let(:product) { create(:product) }
10
- let(:currency) { 'USD' }
11
-
12
- before do
13
- allow(helper).to receive(:current_currency) { currency }
14
- end
15
-
16
- context "#variant_price_diff" do
17
- let(:product_price) { 10 }
18
- let(:variant_price) { 10 }
19
-
20
- before do
21
- @variant = create(:variant, product: product)
22
- product.price = 15
23
- @variant.price = 10
24
- allow(product).to receive(:amount_in) { product_price }
25
- allow(@variant).to receive(:amount_in) { variant_price }
26
- end
27
-
28
- subject { helper.variant_price(@variant) }
29
-
30
- context "when variant is same as master" do
31
- it { is_expected.to be_nil }
32
- end
33
-
34
- context "when the master has no price" do
35
- let(:product_price) { nil }
36
-
37
- it { is_expected.to be_nil }
38
- end
39
-
40
- context "when currency is default" do
41
- context "when variant is more than master" do
42
- let(:variant_price) { 15 }
43
-
44
- it { is_expected.to eq("(Add: $5.00)") }
45
- # Regression test for #2737
46
- it { is_expected.to be_html_safe }
47
- end
48
-
49
- context "when variant is less than master" do
50
- let(:product_price) { 15 }
51
-
52
- it { is_expected.to eq("(Subtract: $5.00)") }
53
- end
54
- end
55
-
56
- context "when currency is JPY" do
57
- let(:variant_price) { 100 }
58
- let(:product_price) { 100 }
59
- let(:currency) { 'JPY' }
60
-
61
- context "when variant is more than master" do
62
- let(:variant_price) { 150 }
63
-
64
- it { is_expected.to eq("(Add: ¥50)") }
65
- end
66
-
67
- context "when variant is less than master" do
68
- let(:product_price) { 150 }
69
-
70
- it { is_expected.to eq("(Subtract: ¥50)") }
71
- end
72
- end
73
- end
74
-
75
- context "#variant_price_full" do
76
- before do
77
- Spree::Config[:show_variant_full_price] = true
78
- @variant1 = create(:variant, product: product)
79
- @variant2 = create(:variant, product: product)
80
- end
81
-
82
- context "when currency is default" do
83
- it "should return the variant price if the price is different than master" do
84
- product.price = 10
85
- @variant1.price = 15
86
- @variant2.price = 20
87
- expect(helper.variant_price(@variant1)).to eq("$15.00")
88
- expect(helper.variant_price(@variant2)).to eq("$20.00")
89
- end
90
- end
91
-
92
- context "when currency is JPY" do
93
- let(:currency) { 'JPY' }
94
-
95
- before do
96
- product.variants.active.each do |variant|
97
- variant.prices.each do |price|
98
- price.currency = currency
99
- price.save!
100
- end
101
- end
102
- end
103
-
104
- it "should return the variant price if the price is different than master" do
105
- product.price = 100
106
- @variant1.price = 150
107
- expect(helper.variant_price(@variant1)).to eq("¥150")
108
- end
109
- end
110
-
111
- it "should be nil when all variant prices are equal" do
112
- product.price = 10
113
- @variant1.default_price.update_column(:amount, 10)
114
- @variant2.default_price.update_column(:amount, 10)
115
- expect(helper.variant_price(@variant1)).to be_nil
116
- expect(helper.variant_price(@variant2)).to be_nil
117
- end
118
- end
119
-
120
-
121
- context "#product_description" do
122
- # Regression test for #1607
123
- it "renders a product description without excessive paragraph breaks" do
124
- product.description = %Q{
125
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a ligula leo. Proin eu arcu at ipsum dapibus ullamcorper. Pellentesque egestas orci nec magna condimentum luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut ac ante et mauris bibendum ultricies non sed massa. Fusce facilisis dui eget lacus scelerisque eget aliquam urna ultricies. Duis et rhoncus quam. Praesent tellus nisi, ultrices sed iaculis quis, euismod interdum ipsum.</p>
126
- <ul>
127
- <li>Lorem ipsum dolor sit amet</li>
128
- <li>Lorem ipsum dolor sit amet</li>
129
- </ul>
130
- }
131
- description = product_description(product)
132
- expect(description.strip).to eq(product.description.strip)
133
- end
134
-
135
- it "renders a product description with automatic paragraph breaks" do
136
- product.description = %Q{
137
- THIS IS THE BEST PRODUCT EVER!
138
-
139
- "IT CHANGED MY LIFE" - Sue, MD}
140
-
141
- description = product_description(product)
142
- expect(description.strip).to eq(%Q{<p>\nTHIS IS THE BEST PRODUCT EVER!</p>"IT CHANGED MY LIFE" - Sue, MD})
143
- end
144
-
145
- it "renders a product description without any formatting based on configuration" do
146
- initialDescription = %Q{
147
- <p>hello world</p>
148
-
149
- <p>tihs is completely awesome and it works</p>
150
-
151
- <p>why so many spaces in the code. and why some more formatting afterwards?</p>
152
- }
153
-
154
- product.description = initialDescription
155
-
156
- Spree::Config[:show_raw_product_description] = true
157
- description = product_description(product)
158
- expect(description).to eq(initialDescription)
159
- end
160
-
161
- context "renders a product description default description incase description is blank" do
162
- before { product.description = '' }
163
- it { expect(product_description(product)).to eq(Spree.t(:product_has_no_description)) }
164
- end
165
- end
166
-
167
- shared_examples_for "line item descriptions" do
168
- context 'variant has a blank description' do
169
- let(:description) { nil }
170
- it { is_expected.to eq(Spree.t(:product_has_no_description)) }
171
- end
172
- context 'variant has a description' do
173
- let(:description) { 'test_desc' }
174
- it { is_expected.to eq(description) }
175
- end
176
- context 'description has nonbreaking spaces' do
177
- let(:description) { 'test&nbsp;desc' }
178
- it { is_expected.to eq('test desc') }
179
- end
180
- context 'description has line endings' do
181
- let(:description) { "test\n\r\ndesc" }
182
- it { is_expected.to eq('test desc') }
183
- end
184
- end
185
-
186
- context '#line_item_description_text' do
187
- subject { line_item_description_text description }
188
-
189
- it_should_behave_like "line item descriptions"
190
- end
191
-
192
- context '#cache_key_for_products' do
193
- let(:zone) { Spree::Zone.new }
194
- let(:price_options) { { tax_zone: zone } }
195
-
196
- subject { helper.cache_key_for_products }
197
- before(:each) do
198
- @products = double('products collection')
199
- allow(helper).to receive(:params) { {page: 10} }
200
- allow(helper).to receive(:current_price_options) { price_options }
201
- end
202
-
203
- context 'when there is a maximum updated date' do
204
- let(:updated_at) { Date.new(2011, 12, 13) }
205
- before :each do
206
- allow(@products).to receive(:count) { 5 }
207
- allow(@products).to receive(:maximum).with(:updated_at) { updated_at }
208
- end
209
-
210
- it { is_expected.to eq("en/USD/spree/zones/new/spree/products/all-10-20111213-5") }
211
- end
212
-
213
- context 'when there is no considered maximum updated date' do
214
- let(:today) { Date.new(2013, 12, 11) }
215
- before :each do
216
- allow(@products).to receive(:count) { 1234567 }
217
- allow(@products).to receive(:maximum).with(:updated_at) { nil }
218
- allow(Date).to receive(:today) { today }
219
- end
220
-
221
- it { is_expected.to eq("en/USD/spree/zones/new/spree/products/all-10-20131211-1234567") }
222
- end
223
- end
224
-
225
- context "#cache_key_for_product" do
226
- let(:product) { Spree::Product.new }
227
- let(:price_options) { { tax_zone: zone } }
228
-
229
- subject(:cache_key) { helper.cache_key_for_product(product) }
230
-
231
- before do
232
- allow(helper).to receive(:current_price_options) { price_options }
233
- end
234
-
235
- context "when there is a current tax zone" do
236
- let(:zone) { Spree::Zone.new }
237
-
238
- it "includes the current_tax_zone" do
239
- is_expected.to eq("en/USD/spree/zones/new/spree/products/new/")
240
- end
241
- end
242
-
243
- context "when there is no current tax zone" do
244
- let(:zone) { nil }
245
-
246
- it { is_expected.to eq("en/USD/spree/products/new/") }
247
- end
248
-
249
- context "when current_price_options includes nil values" do
250
- let(:price_options) do
251
- {
252
- a: nil,
253
- b: Spree::Zone.new
254
- }
255
- end
256
-
257
- it "does not include nil values" do
258
- expect(cache_key).to eq("en/USD/spree/zones/new/spree/products/new/")
259
- end
260
- end
261
-
262
- context "when current_price_options includes values that do not implement cache_key" do
263
- let(:price_options) do
264
- {
265
- a: true,
266
- b: Spree::Zone.new
267
- }
268
- end
269
-
270
- it "includes string representations of these values" do
271
- expect(cache_key).to eq("en/USD/true/spree/zones/new/spree/products/new/")
272
- end
273
- end
274
-
275
- context "when keys in the options hash are inserted in non-alphabetical order" do
276
- let(:price_options) do
277
- {
278
- b: Spree::Zone.new,
279
- a: true
280
- }
281
- end
282
-
283
- it "the values are nevertheless returned in alphabetical order of their keys" do
284
- expect(cache_key).to eq("en/USD/true/spree/zones/new/spree/products/new/")
285
- end
286
- end
287
- end
288
- end
289
- end
@@ -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