solidus_core 1.2.3 → 1.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (573) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/spree.js.coffee.erb +1 -1
  5. data/app/helpers/spree/base_helper.rb +21 -43
  6. data/app/helpers/spree/orders_helper.rb +0 -1
  7. data/app/helpers/spree/products_helper.rb +10 -12
  8. data/app/helpers/spree/taxons_helper.rb +4 -4
  9. data/app/mailers/spree/base_mailer.rb +1 -3
  10. data/app/mailers/spree/carton_mailer.rb +2 -2
  11. data/app/mailers/spree/order_mailer.rb +2 -2
  12. data/app/models/concerns/spree/adjustment_source.rb +12 -16
  13. data/app/models/concerns/spree/calculated_adjustments.rb +17 -14
  14. data/app/models/concerns/spree/default_price.rb +10 -26
  15. data/app/models/concerns/spree/display_money.rb +1 -1
  16. data/app/models/concerns/spree/ordered_property_value_list.rb +10 -12
  17. data/app/models/concerns/spree/ransackable_attributes.rb +6 -5
  18. data/app/models/concerns/spree/user_address_book.rb +87 -81
  19. data/app/models/concerns/spree/user_methods.rb +2 -2
  20. data/app/models/concerns/spree/user_payment_source.rb +12 -8
  21. data/app/models/spree/ability.rb +2 -2
  22. data/app/models/spree/address.rb +37 -38
  23. data/app/models/spree/adjustment.rb +2 -6
  24. data/app/models/spree/app_configuration.rb +60 -5
  25. data/app/models/spree/base.rb +1 -1
  26. data/app/models/spree/calculator/default_tax.rb +28 -24
  27. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
  28. data/app/models/spree/calculator/flat_rate.rb +2 -2
  29. data/app/models/spree/calculator/flexi_rate.rb +4 -4
  30. data/app/models/spree/calculator/percent_per_item.rb +8 -9
  31. data/app/models/spree/calculator/price_sack.rb +3 -3
  32. data/app/models/spree/calculator/returns/default_refund_amount.rb +11 -12
  33. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
  34. data/app/models/spree/calculator/shipping/flat_rate.rb +2 -2
  35. data/app/models/spree/calculator/shipping/flexi_rate.rb +3 -3
  36. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  37. data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
  38. data/app/models/spree/calculator/tiered_flat_rate.rb +2 -1
  39. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  40. data/app/models/spree/calculator.rb +3 -3
  41. data/app/models/spree/carton.rb +2 -2
  42. data/app/models/spree/country.rb +7 -4
  43. data/app/models/spree/credit_card.rb +26 -22
  44. data/app/models/spree/customer_return.rb +8 -7
  45. data/app/models/spree/exchange.rb +1 -9
  46. data/app/models/spree/gateway/bogus.rb +31 -31
  47. data/app/models/spree/gateway/bogus_simple.rb +6 -8
  48. data/app/models/spree/gateway.rb +9 -15
  49. data/app/models/spree/image.rb +3 -3
  50. data/app/models/spree/inventory_unit.rb +23 -23
  51. data/app/models/spree/item_adjustments.rb +3 -2
  52. data/app/models/spree/legacy_user.rb +1 -5
  53. data/app/models/spree/line_item.rb +95 -84
  54. data/app/models/spree/option_type.rb +1 -1
  55. data/app/models/spree/option_value.rb +3 -1
  56. data/app/models/spree/order/checkout.rb +45 -44
  57. data/app/models/spree/order/payments.rb +42 -45
  58. data/app/models/spree/order.rb +70 -75
  59. data/app/models/spree/order_cancellations.rb +4 -4
  60. data/app/models/spree/order_capturing.rb +3 -2
  61. data/app/models/spree/order_contents.rb +61 -59
  62. data/app/models/spree/order_inventory.rb +59 -54
  63. data/app/models/spree/order_mutex.rb +0 -1
  64. data/app/models/spree/order_shipping.rb +8 -9
  65. data/app/models/spree/order_stock_location.rb +3 -3
  66. data/app/models/spree/order_update_attributes.rb +0 -2
  67. data/app/models/spree/order_updater.rb +11 -24
  68. data/app/models/spree/payment/processing.rb +26 -37
  69. data/app/models/spree/payment.rb +68 -71
  70. data/app/models/spree/payment_method/check.rb +2 -2
  71. data/app/models/spree/payment_method/store_credit.rb +6 -7
  72. data/app/models/spree/payment_method.rb +11 -8
  73. data/app/models/spree/preferences/configuration.rb +2 -2
  74. data/app/models/spree/preferences/preferable.rb +1 -1
  75. data/app/models/spree/preferences/preferable_class_methods.rb +1 -1
  76. data/app/models/spree/preferences/scoped_store.rb +6 -5
  77. data/app/models/spree/preferences/static_model_preferences.rb +1 -1
  78. data/app/models/spree/preferences/statically_configurable.rb +2 -2
  79. data/app/models/spree/preferences/store.rb +2 -6
  80. data/app/models/spree/price.rb +17 -19
  81. data/app/models/spree/product/scopes.rb +18 -17
  82. data/app/models/spree/product.rb +28 -11
  83. data/app/models/spree/product_property.rb +2 -0
  84. data/app/models/spree/product_scope/scopes.rb +22 -22
  85. data/app/models/spree/promotion/actions/create_adjustment.rb +3 -4
  86. data/app/models/spree/promotion/actions/create_item_adjustments.rb +8 -8
  87. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +3 -3
  88. data/app/models/spree/promotion/actions/free_shipping.rb +4 -4
  89. data/app/models/spree/promotion/rules/first_order.rb +7 -6
  90. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +2 -3
  91. data/app/models/spree/promotion/rules/item_total.rb +5 -2
  92. data/app/models/spree/promotion/rules/nth_order.rb +3 -4
  93. data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
  94. data/app/models/spree/promotion/rules/option_value.rb +1 -2
  95. data/app/models/spree/promotion/rules/product.rb +4 -4
  96. data/app/models/spree/promotion/rules/taxon.rb +5 -5
  97. data/app/models/spree/promotion/rules/user.rb +1 -1
  98. data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
  99. data/app/models/spree/promotion.rb +8 -8
  100. data/app/models/spree/promotion_action.rb +1 -1
  101. data/app/models/spree/promotion_builder.rb +2 -2
  102. data/app/models/spree/promotion_chooser.rb +1 -0
  103. data/app/models/spree/promotion_code/code_builder.rb +3 -3
  104. data/app/models/spree/promotion_handler/cart.rb +17 -16
  105. data/app/models/spree/promotion_handler/coupon.rb +10 -14
  106. data/app/models/spree/promotion_handler/page.rb +4 -4
  107. data/app/models/spree/promotion_rule.rb +4 -3
  108. data/app/models/spree/prototype.rb +0 -1
  109. data/app/models/spree/refund.rb +3 -3
  110. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
  111. data/app/models/spree/reimbursement.rb +3 -5
  112. data/app/models/spree/reimbursement_performer.rb +0 -5
  113. data/app/models/spree/reimbursement_tax_calculator.rb +2 -7
  114. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  115. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  116. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +3 -3
  117. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  118. data/app/models/spree/reimbursement_type.rb +1 -1
  119. data/app/models/spree/return_authorization.rb +38 -37
  120. data/app/models/spree/return_item/eligibility_validator/default.rb +4 -4
  121. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -1
  122. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -1
  123. data/app/models/spree/return_item.rb +24 -23
  124. data/app/models/spree/returns_calculator.rb +1 -2
  125. data/app/models/spree/shipment.rb +80 -74
  126. data/app/models/spree/shipping_calculator.rb +4 -5
  127. data/app/models/spree/shipping_manifest.rb +3 -4
  128. data/app/models/spree/shipping_method.rb +54 -23
  129. data/app/models/spree/shipping_method_stock_location.rb +4 -0
  130. data/app/models/spree/shipping_rate.rb +24 -29
  131. data/app/models/spree/shipping_rate_tax.rb +41 -0
  132. data/app/models/spree/state.rb +1 -1
  133. data/app/models/spree/state_change.rb +1 -1
  134. data/app/models/spree/stock/availability_validator.rb +2 -2
  135. data/app/models/spree/stock/coordinator.rb +12 -13
  136. data/app/models/spree/stock/differentiator.rb +1 -0
  137. data/app/models/spree/stock/estimator.rb +18 -25
  138. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  139. data/app/models/spree/stock/package.rb +19 -9
  140. data/app/models/spree/stock/packer.rb +2 -3
  141. data/app/models/spree/stock/prioritizer.rb +3 -2
  142. data/app/models/spree/stock/quantifier.rb +2 -3
  143. data/app/models/spree/stock/shipping_rate_selector.rb +0 -1
  144. data/app/models/spree/stock/shipping_rate_sorter.rb +0 -1
  145. data/app/models/spree/stock/splitter/backordered.rb +0 -2
  146. data/app/models/spree/stock/splitter/base.rb +3 -2
  147. data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
  148. data/app/models/spree/stock/splitter/weight.rb +2 -2
  149. data/app/models/spree/stock_item.rb +36 -37
  150. data/app/models/spree/stock_location.rb +17 -13
  151. data/app/models/spree/stock_movement.rb +1 -3
  152. data/app/models/spree/stock_transfer.rb +8 -8
  153. data/app/models/spree/store.rb +6 -0
  154. data/app/models/spree/store_credit.rb +24 -24
  155. data/app/models/spree/store_credit_category.rb +1 -2
  156. data/app/models/spree/tax/item_adjuster.rb +37 -0
  157. data/app/models/spree/tax/order_adjuster.rb +38 -0
  158. data/app/models/spree/tax/shipping_rate_taxer.rb +31 -0
  159. data/app/models/spree/tax/tax_helpers.rb +49 -0
  160. data/app/models/spree/tax/tax_location.rb +33 -0
  161. data/app/models/spree/tax_category.rb +1 -1
  162. data/app/models/spree/tax_rate.rb +46 -111
  163. data/app/models/spree/taxon.rb +36 -12
  164. data/app/models/spree/taxonomy.rb +10 -10
  165. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -1
  166. data/app/models/spree/variant/pricer.rb +19 -0
  167. data/app/models/spree/variant/pricing_options.rb +31 -0
  168. data/app/models/spree/variant/scopes.rb +9 -9
  169. data/app/models/spree/variant.rb +95 -89
  170. data/app/models/spree/variant_property_rule.rb +1 -1
  171. data/app/models/spree/variant_property_rule_value.rb +2 -0
  172. data/app/models/spree/zone.rb +60 -24
  173. data/config/initializers/friendly_id.rb +1 -1
  174. data/config/locales/en.yml +337 -51
  175. data/config/routes.rb +1 -1
  176. data/db/default/spree/countries.rb +9 -15
  177. data/db/default/spree/roles.rb +1 -2
  178. data/db/default/spree/states.rb +7 -11
  179. data/db/default/spree/store_credit.rb +2 -2
  180. data/db/default/spree/stores.rb +2 -1
  181. data/db/migrate/20120831092320_spree_one_two.rb +100 -101
  182. data/db/migrate/20120831092359_spree_promo_one_two.rb +12 -12
  183. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +1 -1
  184. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +1 -1
  185. data/db/migrate/20121010142909_add_states_required_to_countries.rb +1 -1
  186. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +2 -2
  187. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +4 -4
  188. data/db/migrate/20121031162139_split_prices_from_variants.rb +8 -8
  189. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +2 -2
  190. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +1 -1
  191. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +1 -1
  192. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +1 -2
  193. data/db/migrate/20130211190146_create_spree_stock_items.rb +1 -1
  194. data/db/migrate/20130213191427_create_default_stock.rb +12 -21
  195. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +1 -1
  196. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +2 -2
  197. data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
  198. data/db/migrate/20130301162924_create_shipping_method_categories.rb +2 -2
  199. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +4 -4
  200. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +2 -3
  201. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +1 -1
  202. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +1 -1
  203. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +1 -1
  204. data/db/migrate/20130319062004_change_orders_total_precision.rb +4 -4
  205. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +1 -3
  206. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -4
  207. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +1 -3
  208. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +2 -2
  209. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +2 -2
  210. data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
  211. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +3 -3
  212. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +1 -1
  213. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +3 -3
  214. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +1 -1
  215. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +2 -2
  216. data/db/migrate/20130807024301_upgrade_adjustments.rb +3 -3
  217. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +1 -1
  218. data/db/migrate/20130813140619_expand_order_number_size.rb +2 -2
  219. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +1 -1
  220. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +1 -1
  221. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  222. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +1 -1
  223. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  224. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +1 -0
  225. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +1 -1
  226. data/db/migrate/20131118043959_add_included_to_adjustments.rb +1 -1
  227. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -1
  228. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +1 -1
  229. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +1 -1
  230. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -0
  231. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +1 -1
  232. data/db/migrate/20140309023735_migrate_old_preferences.rb +4 -3
  233. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  234. data/db/migrate/20140410141842_add_many_missing_indexes.rb +13 -15
  235. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +38 -40
  236. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +4 -4
  237. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
  238. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -1
  239. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +4 -4
  240. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +4 -6
  241. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -0
  242. data/db/migrate/20141217215630_update_product_slug_index.rb +2 -4
  243. data/db/migrate/20150112194216_add_position_to_stock_location.rb +2 -2
  244. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +0 -1
  245. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +0 -1
  246. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +3 -3
  247. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -1
  248. data/db/migrate/20150612205731_remove_spree_configurations.rb +2 -2
  249. data/db/migrate/20150619160613_create_adjustment_reason.rb +1 -1
  250. data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +10 -2
  251. data/db/migrate/20150731201146_add_spree_user_addresses.rb +0 -1
  252. data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +1 -1
  253. data/db/migrate/20151001121454_create_spree_shipping_method_stock_locations.rb +13 -0
  254. data/db/migrate/20151002023248_add_foreign_key_to_shipping_method_stock_location.rb +6 -0
  255. data/db/migrate/20151026093607_change_return_item_pre_tax_amount_to_amount.rb +29 -0
  256. data/db/migrate/20160111091912_add_column_available_to_all_on_spree_shipping_method.rb +5 -0
  257. data/db/migrate/20160116133604_add_position_to_spree_payment_methods.rb +5 -0
  258. data/db/migrate/20160122182105_add_carrier_and_service_level_to_spree_shipping_methods.rb +6 -0
  259. data/db/migrate/20160224201413_create_spree_shipping_rate_taxes.rb +11 -0
  260. data/db/migrate/20160229133259_add_cart_tax_country_iso_to_spree_store.rb +5 -0
  261. data/db/migrate/20160301103333_remove_pre_tax_amount_on_line_item_and_shipment.rb +6 -0
  262. data/db/migrate/20160308000300_disallow_adjustment_finalized_nulls.rb +19 -0
  263. data/db/migrate/20160318145302_add_timestamps_to_prices.rb +5 -0
  264. data/db/migrate/20160330204846_add_missing_timestamp_columns.rb +20 -0
  265. data/lib/generators/spree/custom_user/custom_user_generator.rb +3 -8
  266. data/lib/generators/spree/dummy/dummy_generator.rb +17 -19
  267. data/lib/generators/spree/install/install_generator.rb +15 -15
  268. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  269. data/lib/spree/core/controller_helpers/auth.rb +2 -4
  270. data/lib/spree/core/controller_helpers/common.rb +42 -43
  271. data/lib/spree/core/controller_helpers/order.rb +5 -9
  272. data/lib/spree/core/controller_helpers/payment_parameters.rb +4 -5
  273. data/lib/spree/core/controller_helpers/pricing.rb +27 -0
  274. data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
  275. data/lib/spree/core/controller_helpers/search.rb +2 -2
  276. data/lib/spree/core/controller_helpers/store.rb +3 -3
  277. data/lib/spree/core/controller_helpers/strong_parameters.rb +4 -4
  278. data/lib/spree/core/current_store.rb +1 -1
  279. data/lib/spree/core/delegate_belongs_to.rb +19 -21
  280. data/lib/spree/core/engine.rb +12 -8
  281. data/lib/spree/core/environment/calculators.rb +0 -1
  282. data/lib/spree/core/environment_extension.rb +4 -4
  283. data/lib/spree/core/importer/order.rb +17 -22
  284. data/lib/spree/core/importer/product.rb +10 -9
  285. data/lib/spree/core/permalinks.rb +16 -16
  286. data/lib/spree/core/product_duplicator.rb +2 -3
  287. data/lib/spree/core/product_filters.rb +15 -16
  288. data/lib/spree/core/role_configuration.rb +2 -2
  289. data/lib/spree/core/search/base.rb +71 -57
  290. data/lib/spree/core/search/variant.rb +2 -4
  291. data/lib/spree/core/unreturned_item_charger.rb +1 -2
  292. data/lib/spree/core/validators/email.rb +2 -2
  293. data/lib/spree/core/version.rb +1 -1
  294. data/lib/spree/core.rb +2 -4
  295. data/lib/spree/i18n.rb +1 -1
  296. data/lib/spree/localized_number.rb +3 -1
  297. data/lib/spree/migrations.rb +27 -26
  298. data/lib/spree/money.rb +19 -4
  299. data/lib/spree/permission_sets/base.rb +1 -1
  300. data/lib/spree/permitted_attributes.rb +7 -7
  301. data/lib/spree/responder.rb +4 -5
  302. data/lib/spree/testing_support/authorization_helpers.rb +1 -1
  303. data/lib/spree/testing_support/caching.rb +8 -8
  304. data/lib/spree/testing_support/capybara_ext.rb +11 -13
  305. data/lib/spree/testing_support/common_rake.rb +4 -4
  306. data/lib/spree/testing_support/controller_requests.rb +1 -1
  307. data/lib/spree/testing_support/extension_rake.rb +1 -2
  308. data/lib/spree/testing_support/factories/address_factory.rb +14 -3
  309. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
  310. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  311. data/lib/spree/testing_support/factories/credit_card_factory.rb +4 -0
  312. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -6
  313. data/lib/spree/testing_support/factories/line_item_factory.rb +1 -1
  314. data/lib/spree/testing_support/factories/order_factory.rb +10 -11
  315. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  316. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -1
  317. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -1
  318. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  319. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  320. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  321. data/lib/spree/testing_support/factories/shipping_method_factory.rb +5 -2
  322. data/lib/spree/testing_support/factories/state_factory.rb +17 -7
  323. data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -4
  324. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +1 -1
  325. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -1
  326. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -2
  327. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
  328. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  329. data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
  330. data/lib/spree/testing_support/factories/zone_factory.rb +2 -1
  331. data/lib/spree/testing_support/i18n.rb +4 -5
  332. data/lib/spree/testing_support/order_walkthrough.rb +8 -9
  333. data/lib/spree/testing_support/preferences.rb +1 -1
  334. data/lib/spree/testing_support/sequences.rb +5 -4
  335. data/lib/tasks/core.rake +15 -19
  336. data/lib/tasks/email.rake +3 -3
  337. data/lib/tasks/exchanges.rake +12 -14
  338. data/lib/tasks/migrations/assure_store_on_orders.rake +38 -0
  339. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +2 -2
  340. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +1 -11
  341. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +17 -0
  342. data/lib/tasks/migrations/migrate_user_addresses.rake +1 -1
  343. data/lib/tasks/order_capturing.rake +1 -1
  344. data/lib/tasks/upgrade.rake +11 -0
  345. data/script/rails +0 -1
  346. data/solidus_core.gemspec +6 -8
  347. data/spec/helpers/base_helper_spec.rb +15 -18
  348. data/spec/helpers/order_helper_spec.rb +2 -2
  349. data/spec/helpers/products_helper_spec.rb +43 -51
  350. data/spec/helpers/taxons_helper_spec.rb +1 -1
  351. data/spec/lib/i18n_spec.rb +11 -11
  352. data/spec/lib/search/base_spec.rb +12 -14
  353. data/spec/lib/search/variant_spec.rb +1 -0
  354. data/spec/lib/spree/core/controller_helpers/order_spec.rb +1 -7
  355. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +26 -28
  356. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +63 -0
  357. data/spec/lib/spree/core/controller_helpers/search_spec.rb +4 -2
  358. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
  359. data/spec/lib/spree/core/importer/order_spec.rb +95 -90
  360. data/spec/lib/spree/core/role_configuration_spec.rb +16 -16
  361. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +35 -0
  362. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +10 -1
  363. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -1
  364. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +6 -1
  365. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +37 -1
  366. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +2 -2
  367. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +1 -1
  368. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +1 -2
  369. data/spec/lib/spree/core/testing_support/preferences_spec.rb +26 -0
  370. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +7 -9
  371. data/spec/lib/spree/core/validators/email_spec.rb +8 -6
  372. data/spec/lib/spree/localized_number_spec.rb +1 -3
  373. data/spec/lib/spree/migrations_spec.rb +2 -2
  374. data/spec/lib/spree/money_spec.rb +75 -6
  375. data/spec/lib/tasks/exchanges_spec.rb +2 -12
  376. data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -1
  377. data/spec/lib/tasks/order_capturing_spec.rb +1 -1
  378. data/spec/mailers/carton_mailer_spec.rb +3 -3
  379. data/spec/mailers/order_mailer_spec.rb +9 -11
  380. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  381. data/spec/mailers/test_mailer_spec.rb +1 -1
  382. data/spec/models/spree/ability_spec.rb +4 -7
  383. data/spec/models/spree/address_spec.rb +32 -35
  384. data/spec/models/spree/adjustment_reason_spec.rb +0 -2
  385. data/spec/models/spree/adjustment_spec.rb +2 -2
  386. data/spec/models/spree/app_configuration_spec.rb +33 -3
  387. data/spec/models/spree/asset_spec.rb +1 -2
  388. data/spec/models/spree/calculator/default_tax_spec.rb +141 -52
  389. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  390. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  391. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  392. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  393. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +9 -11
  394. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  395. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  396. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -7
  397. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  398. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +2 -2
  399. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -2
  400. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  401. data/spec/models/spree/calculator_spec.rb +3 -8
  402. data/spec/models/spree/carton_spec.rb +1 -1
  403. data/spec/models/spree/classification_spec.rb +1 -1
  404. data/spec/models/spree/concerns/display_money_spec.rb +0 -1
  405. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +26 -1
  406. data/spec/models/spree/concerns/user_address_book_spec.rb +19 -12
  407. data/spec/models/spree/concerns/user_methods_spec.rb +1 -1
  408. data/spec/models/spree/country_spec.rb +52 -0
  409. data/spec/models/spree/credit_card_spec.rb +17 -12
  410. data/spec/models/spree/customer_return_spec.rb +27 -23
  411. data/spec/models/spree/exchange_spec.rb +2 -7
  412. data/spec/models/spree/gateway/bogus_simple.rb +2 -4
  413. data/spec/models/spree/gateway/bogus_spec.rb +4 -2
  414. data/spec/models/spree/gateway_spec.rb +8 -3
  415. data/spec/models/spree/inventory_unit_spec.rb +13 -14
  416. data/spec/models/spree/item_adjustments_spec.rb +36 -40
  417. data/spec/models/spree/line_item_spec.rb +92 -48
  418. data/spec/models/spree/option_type_spec.rb +1 -1
  419. data/spec/models/spree/option_value_spec.rb +1 -1
  420. data/spec/models/spree/order/address_spec.rb +1 -1
  421. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  422. data/spec/models/spree/order/checkout_spec.rb +55 -48
  423. data/spec/models/spree/order/finalizing_spec.rb +8 -9
  424. data/spec/models/spree/order/payment_spec.rb +20 -20
  425. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  426. data/spec/models/spree/order/state_machine_spec.rb +40 -131
  427. data/spec/models/spree/order/tax_spec.rb +11 -12
  428. data/spec/models/spree/order/totals_spec.rb +3 -3
  429. data/spec/models/spree/order/updating_spec.rb +2 -2
  430. data/spec/models/spree/order/validations_spec.rb +2 -2
  431. data/spec/models/spree/order_cancellations_spec.rb +1 -1
  432. data/spec/models/spree/order_capturing_spec.rb +1 -1
  433. data/spec/models/spree/order_contents_spec.rb +10 -11
  434. data/spec/models/spree/order_inventory_spec.rb +11 -11
  435. data/spec/models/spree/order_merger_spec.rb +1 -0
  436. data/spec/models/spree/order_shipping_spec.rb +8 -10
  437. data/spec/models/spree/order_spec.rb +137 -124
  438. data/spec/models/spree/order_stock_location_spec.rb +2 -2
  439. data/spec/models/spree/order_update_attributes_spec.rb +6 -10
  440. data/spec/models/spree/order_updater_spec.rb +4 -8
  441. data/spec/models/spree/payment_create_spec.rb +11 -12
  442. data/spec/models/spree/payment_method/store_credit_spec.rb +10 -6
  443. data/spec/models/spree/payment_method_spec.rb +4 -5
  444. data/spec/models/spree/payment_spec.rb +61 -69
  445. data/spec/models/spree/permission_sets/base_spec.rb +1 -1
  446. data/spec/models/spree/permission_sets/configuration_display.rb +0 -1
  447. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -1
  448. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -1
  449. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -1
  450. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -1
  451. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -1
  452. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -1
  453. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -1
  454. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -1
  455. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -1
  456. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -1
  457. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -1
  458. data/spec/models/spree/permission_sets/restricted_stock_transfer_display_spec.rb +0 -1
  459. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +6 -6
  460. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -1
  461. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -1
  462. data/spec/models/spree/permission_sets/stock_transfer_display_spec.rb +0 -1
  463. data/spec/models/spree/permission_sets/stock_transfer_management_spec.rb +0 -2
  464. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -1
  465. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -1
  466. data/spec/models/spree/preference_spec.rb +1 -4
  467. data/spec/models/spree/preferences/configuration_spec.rb +2 -7
  468. data/spec/models/spree/preferences/preferable_spec.rb +13 -24
  469. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  470. data/spec/models/spree/preferences/static_model_preferences_spec.rb +5 -6
  471. data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -6
  472. data/spec/models/spree/preferences/store_spec.rb +2 -3
  473. data/spec/models/spree/price_spec.rb +6 -6
  474. data/spec/models/spree/product/scopes_spec.rb +20 -20
  475. data/spec/models/spree/product_duplicator_spec.rb +16 -29
  476. data/spec/models/spree/product_filter_spec.rb +2 -2
  477. data/spec/models/spree/product_spec.rb +53 -20
  478. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +10 -12
  479. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +4 -4
  480. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +9 -9
  481. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  482. data/spec/models/spree/promotion/rules/first_order_spec.rb +10 -10
  483. data/spec/models/spree/promotion/rules/item_total_spec.rb +63 -19
  484. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  485. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  486. data/spec/models/spree/promotion/rules/taxon_spec.rb +4 -4
  487. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -4
  488. data/spec/models/spree/promotion/rules/user_spec.rb +7 -7
  489. data/spec/models/spree/promotion_builder_spec.rb +10 -8
  490. data/spec/models/spree/promotion_category_spec.rb +1 -1
  491. data/spec/models/spree/promotion_code/code_builder_spec.rb +1 -3
  492. data/spec/models/spree/promotion_code_spec.rb +8 -7
  493. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  494. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  495. data/spec/models/spree/promotion_handler/page_spec.rb +6 -7
  496. data/spec/models/spree/promotion_rule_spec.rb +1 -2
  497. data/spec/models/spree/promotion_spec.rb +25 -21
  498. data/spec/models/spree/refund_spec.rb +8 -11
  499. data/spec/models/spree/reimbursement/credit_spec.rb +2 -2
  500. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +6 -4
  501. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  502. data/spec/models/spree/reimbursement_performer_spec.rb +2 -2
  503. data/spec/models/spree/reimbursement_spec.rb +9 -11
  504. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +4 -5
  505. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -2
  506. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -3
  507. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +4 -4
  508. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +1 -1
  509. data/spec/models/spree/return_authorization_spec.rb +18 -21
  510. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +7 -7
  511. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -1
  512. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -1
  513. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  514. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  515. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -2
  516. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +3 -5
  517. data/spec/models/spree/return_item_spec.rb +29 -31
  518. data/spec/models/spree/returns_calculator_spec.rb +1 -1
  519. data/spec/models/spree/shipment_spec.rb +59 -43
  520. data/spec/models/spree/shipping_calculator_spec.rb +3 -3
  521. data/spec/models/spree/shipping_manifest_spec.rb +8 -7
  522. data/spec/models/spree/shipping_method_spec.rb +149 -24
  523. data/spec/models/spree/shipping_rate_spec.rb +116 -76
  524. data/spec/models/spree/shipping_rate_tax_spec.rb +83 -0
  525. data/spec/models/spree/state_spec.rb +2 -2
  526. data/spec/models/spree/stock/availability_validator_spec.rb +4 -4
  527. data/spec/models/spree/stock/coordinator_spec.rb +33 -49
  528. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  529. data/spec/models/spree/stock/estimator_spec.rb +83 -54
  530. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -3
  531. data/spec/models/spree/stock/package_spec.rb +27 -10
  532. data/spec/models/spree/stock/packer_spec.rb +4 -4
  533. data/spec/models/spree/stock/prioritizer_spec.rb +1 -1
  534. data/spec/models/spree/stock/quantifier_spec.rb +2 -6
  535. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  536. data/spec/models/spree/stock/splitter/base_spec.rb +1 -2
  537. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +1 -3
  538. data/spec/models/spree/stock/splitter/weight_spec.rb +3 -3
  539. data/spec/models/spree/stock_item_spec.rb +16 -16
  540. data/spec/models/spree/stock_location_spec.rb +6 -8
  541. data/spec/models/spree/stock_movement_spec.rb +1 -1
  542. data/spec/models/spree/stock_transfer_spec.rb +1 -3
  543. data/spec/models/spree/store_credit_category_spec.rb +1 -1
  544. data/spec/models/spree/store_credit_event_spec.rb +3 -5
  545. data/spec/models/spree/store_credit_spec.rb +24 -23
  546. data/spec/models/spree/store_spec.rb +21 -2
  547. data/spec/models/spree/tax/item_adjuster_spec.rb +74 -0
  548. data/spec/models/spree/tax/order_adjuster_spec.rb +49 -0
  549. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +50 -0
  550. data/spec/models/spree/tax/tax_location_spec.rb +68 -0
  551. data/spec/models/spree/tax/taxation_integration_spec.rb +787 -0
  552. data/spec/models/spree/tax_category_spec.rb +2 -2
  553. data/spec/models/spree/tax_rate_spec.rb +185 -536
  554. data/spec/models/spree/taxon_spec.rb +69 -5
  555. data/spec/models/spree/taxonomy_spec.rb +2 -3
  556. data/spec/models/spree/tracker_spec.rb +1 -1
  557. data/spec/models/spree/transfer_item_spec.rb +1 -1
  558. data/spec/models/spree/unit_cancel_spec.rb +9 -14
  559. data/spec/models/spree/user_spec.rb +19 -24
  560. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +1 -1
  561. data/spec/models/spree/variant/pricer_spec.rb +48 -0
  562. data/spec/models/spree/variant/pricing_options_spec.rb +106 -0
  563. data/spec/models/spree/variant/scopes_spec.rb +31 -8
  564. data/spec/models/spree/variant_property_rule_spec.rb +1 -1
  565. data/spec/models/spree/variant_spec.rb +166 -52
  566. data/spec/models/spree/zone_spec.rb +135 -10
  567. data/spec/support/big_decimal.rb +1 -1
  568. data/spec/support/concerns/working_factories.rb +2 -2
  569. data/spec/support/dummy_ability.rb +0 -1
  570. metadata +55 -44
  571. data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
  572. data/lib/spree/migration_helpers.rb +0 -19
  573. data/vendor/assets/stylesheets/skeleton.css +0 -242
@@ -3,40 +3,30 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  module Spree
6
- describe ProductsHelper, :type => :helper do
6
+ describe ProductsHelper, type: :helper do
7
7
  include ProductsHelper
8
8
 
9
- let(:product) { create(:product) }
9
+ let(:product) { create(:product, price: product_price) }
10
+ let(:product_price) { 10 }
11
+ let(:variant) { create(:variant, product: product, price: variant_price) }
10
12
  let(:currency) { 'USD' }
13
+ let(:pricing_options) do
14
+ Spree::Config.pricing_options_class.new(currency: currency)
15
+ end
11
16
 
12
17
  before do
13
- allow(helper).to receive(:current_currency) { currency }
18
+ allow(helper).to receive(:current_pricing_options) { pricing_options }
14
19
  end
15
20
 
16
21
  context "#variant_price_diff" do
17
- let(:product_price) { 10 }
18
22
  let(:variant_price) { 10 }
19
23
 
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) }
24
+ subject { helper.variant_price(variant) }
29
25
 
30
26
  context "when variant is same as master" do
31
27
  it { is_expected.to be_nil }
32
28
  end
33
29
 
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
30
  context "when currency is default" do
41
31
  context "when variant is more than master" do
42
32
  let(:variant_price) { 15 }
@@ -58,6 +48,11 @@ module Spree
58
48
  let(:product_price) { 100 }
59
49
  let(:currency) { 'JPY' }
60
50
 
51
+ before do
52
+ variant
53
+ product.prices.update_all(currency: currency)
54
+ end
55
+
61
56
  context "when variant is more than master" do
62
57
  let(:variant_price) { 150 }
63
58
 
@@ -73,55 +68,53 @@ module Spree
73
68
  end
74
69
 
75
70
  context "#variant_price_full" do
71
+ let!(:variant_2) { create(:variant, product: product, price: variant_2_price) }
72
+ let(:variant_2_price) { 20 }
73
+ let(:variant_price) { 15 }
74
+
76
75
  before do
77
76
  Spree::Config[:show_variant_full_price] = true
78
- @variant1 = create(:variant, :product => product)
79
- @variant2 = create(:variant, :product => product)
77
+ variant
80
78
  end
81
79
 
82
80
  context "when currency is default" do
83
81
  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")
82
+ expect(helper.variant_price(variant)).to eq("$15.00")
83
+ expect(helper.variant_price(variant_2)).to eq("$20.00")
89
84
  end
90
85
  end
91
86
 
92
87
  context "when currency is JPY" do
93
88
  let(:currency) { 'JPY' }
89
+ let(:product_price) { 100 }
90
+ let(:variant_price) { 150 }
94
91
 
95
92
  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
93
+ variant
94
+ product.prices.update_all(currency: currency)
102
95
  end
103
96
 
104
97
  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")
98
+ expect(helper.variant_price(variant)).to eq("¥150")
108
99
  end
109
100
  end
110
101
 
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
102
+ context "when all variant prices are equal" do
103
+ let(:product_price) { 10 }
104
+ let(:variant_price) { 10 }
105
+ let(:variant_2_price) { 10 }
106
+
107
+ it "should be nil" do
108
+ expect(helper.variant_price(variant)).to be_nil
109
+ expect(helper.variant_price(variant_2)).to be_nil
110
+ end
117
111
  end
118
112
  end
119
113
 
120
-
121
114
  context "#product_description" do
122
115
  # Regression test for https://github.com/spree/spree/issues/1607
123
116
  it "renders a product description without excessive paragraph breaks" do
124
- product.description = %Q{
117
+ product.description = %{
125
118
  <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
119
  <ul>
127
120
  <li>Lorem ipsum dolor sit amet</li>
@@ -133,17 +126,17 @@ module Spree
133
126
  end
134
127
 
135
128
  it "renders a product description with automatic paragraph breaks" do
136
- product.description = %Q{
129
+ product.description = %{
137
130
  THIS IS THE BEST PRODUCT EVER!
138
131
 
139
132
  "IT CHANGED MY LIFE" - Sue, MD}
140
133
 
141
134
  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})
135
+ expect(description.strip).to eq(%{<p>\nTHIS IS THE BEST PRODUCT EVER!</p>"IT CHANGED MY LIFE" - Sue, MD})
143
136
  end
144
137
 
145
138
  it "renders a product description without any formatting based on configuration" do
146
- initialDescription = %Q{
139
+ description = %{
147
140
  <p>hello world</p>
148
141
 
149
142
  <p>tihs is completely awesome and it works</p>
@@ -151,13 +144,12 @@ THIS IS THE BEST PRODUCT EVER!
151
144
  <p>why so many spaces in the code. and why some more formatting afterwards?</p>
152
145
  }
153
146
 
154
- product.description = initialDescription
147
+ product.description = description
155
148
 
156
149
  Spree::Config[:show_raw_product_description] = true
157
150
  description = product_description(product)
158
- expect(description).to eq(initialDescription)
151
+ expect(description).to eq(description)
159
152
  end
160
-
161
153
  end
162
154
 
163
155
  context '#line_item_description_text' do
@@ -180,7 +172,7 @@ THIS IS THE BEST PRODUCT EVER!
180
172
  subject { helper.cache_key_for_products }
181
173
  before(:each) do
182
174
  @products = double('products collection')
183
- allow(helper).to receive(:params) { {:page => 10} }
175
+ allow(helper).to receive(:params) { { page: 10 } }
184
176
  end
185
177
 
186
178
  context 'when there is a maximum updated date' do
@@ -196,7 +188,7 @@ THIS IS THE BEST PRODUCT EVER!
196
188
  context 'when there is no considered maximum updated date' do
197
189
  let(:today) { Date.new(2013, 12, 11) }
198
190
  before :each do
199
- allow(@products).to receive(:count) { 1234567 }
191
+ allow(@products).to receive(:count) { 1_234_567 }
200
192
  allow(@products).to receive(:maximum).with(:updated_at) { nil }
201
193
  allow(Date).to receive(:today) { today }
202
194
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::TaxonsHelper, :type => :helper do
3
+ describe Spree::TaxonsHelper, type: :helper do
4
4
  # Regression test for https://github.com/spree/spree/issues/4382
5
5
  it "#taxon_preview" do
6
6
  taxon = create(:taxon)
@@ -6,15 +6,15 @@ describe "i18n" do
6
6
  before do
7
7
  I18n.backend.store_translations(:en,
8
8
  {
9
- :spree => {
10
- :foo => "bar",
11
- :bar => {
12
- :foo => "bar within bar scope",
13
- :invalid => nil,
14
- :legacy_translation => "back in the day..."
9
+ spree: {
10
+ foo: "bar",
11
+ bar: {
12
+ foo: "bar within bar scope",
13
+ invalid: nil,
14
+ legacy_translation: "back in the day..."
15
15
  },
16
- :invalid => nil,
17
- :legacy_translation => "back in the day..."
16
+ invalid: nil,
17
+ legacy_translation: "back in the day..."
18
18
  }
19
19
  })
20
20
  end
@@ -25,11 +25,11 @@ describe "i18n" do
25
25
  end
26
26
 
27
27
  it "prepends a string scope" do
28
- expect(Spree.normal_t(:foo, :scope => "bar")).to eql("bar within bar scope")
28
+ expect(Spree.normal_t(:foo, scope: "bar")).to eql("bar within bar scope")
29
29
  end
30
30
 
31
31
  it "prepends to an array scope" do
32
- expect(Spree.normal_t(:foo, :scope => ["bar"])).to eql("bar within bar scope")
32
+ expect(Spree.normal_t(:foo, scope: ["bar"])).to eql("bar within bar scope")
33
33
  end
34
34
 
35
35
  it "returns two translations" do
@@ -57,7 +57,7 @@ describe "i18n" do
57
57
  end
58
58
 
59
59
  it "logs missing translations" do
60
- Spree.t(:missing, :scope => [:else, :where])
60
+ Spree.t(:missing, scope: [:else, :where])
61
61
  Spree.check_missing_translations
62
62
  assert_missing_translation("else")
63
63
  assert_missing_translation("else.where")
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::Core::Search::Base do
4
-
5
4
  before do
6
5
  include Spree::Core::ProductFilters
7
6
  @taxon = create(:taxon, name: "Ruby on Rails")
@@ -12,7 +11,7 @@ describe Spree::Core::Search::Base do
12
11
  end
13
12
 
14
13
  it "returns all products by default" do
15
- params = { :per_page => "" }
14
+ params = { per_page: "" }
16
15
  searcher = Spree::Core::Search::Base.new(params)
17
16
  expect(searcher.retrieve_products.count).to eq(2)
18
17
  end
@@ -34,28 +33,28 @@ describe Spree::Core::Search::Base do
34
33
  end
35
34
 
36
35
  it "switches to next page according to the page parameter" do
37
- @product3 = create(:product, :name => "RoR Pants", :price => 14.00)
36
+ @product3 = create(:product, name: "RoR Pants", price: 14.00)
38
37
 
39
- params = { :per_page => "2" }
38
+ params = { per_page: "2" }
40
39
  searcher = Spree::Core::Search::Base.new(params)
41
40
  expect(searcher.retrieve_products.count).to eq(2)
42
41
 
43
- params.merge! :page => "2"
42
+ params[:page] = "2"
44
43
  searcher = Spree::Core::Search::Base.new(params)
45
44
  expect(searcher.retrieve_products.count).to eq(1)
46
45
  end
47
46
 
48
47
  it "maps search params to named scopes" do
49
- params = { :per_page => "",
50
- :search => { "price_range_any" => ["Under $10.00"] }}
48
+ params = { per_page: "",
49
+ search: { "price_range_any" => ["Under $10.00"] } }
51
50
  searcher = Spree::Core::Search::Base.new(params)
52
51
  expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
53
52
  expect(searcher.retrieve_products.count).to eq(1)
54
53
  end
55
54
 
56
55
  it "maps multiple price_range_any filters" do
57
- params = { :per_page => "",
58
- :search => { "price_range_any" => ["Under $10.00", "$10.00 - $15.00"] }}
56
+ params = { per_page: "",
57
+ search: { "price_range_any" => ["Under $10.00", "$10.00 - $15.00"] } }
59
58
  searcher = Spree::Core::Search::Base.new(params)
60
59
  expect(searcher.send(:get_base_scope).to_sql).to match /<= 10/
61
60
  expect(searcher.send(:get_base_scope).to_sql).to match /between 10 and 15/i
@@ -63,8 +62,8 @@ describe Spree::Core::Search::Base do
63
62
  end
64
63
 
65
64
  it "uses ransack if scope not found" do
66
- params = { :per_page => "",
67
- :search => { "name_not_cont" => "Shirt" }}
65
+ params = { per_page: "",
66
+ search: { "name_not_cont" => "Shirt" } }
68
67
  searcher = Spree::Core::Search::Base.new(params)
69
68
  expect(searcher.retrieve_products.count).to eq(1)
70
69
  end
@@ -77,10 +76,9 @@ describe Spree::Core::Search::Base do
77
76
  end
78
77
 
79
78
  it "finds products in alternate currencies" do
80
- price = create(:price, :currency => 'EUR', :variant => @product1.master)
79
+ create(:price, currency: 'EUR', variant: @product1.master)
81
80
  searcher = Spree::Core::Search::Base.new({})
82
- searcher.current_currency = 'EUR'
81
+ searcher.pricing_options = Spree::Config.pricing_options_class.new(currency: 'EUR')
83
82
  expect(searcher.retrieve_products).to eq([@product1])
84
83
  end
85
-
86
84
  end
@@ -93,6 +93,7 @@ module Spree
93
93
  # Only search by SKU if the search word is a number
94
94
  class NumericSkuSearcher < Core::Search::Variant
95
95
  protected
96
+
96
97
  def search_terms(word)
97
98
  if word =~ /\A\d+\z/
98
99
  super
@@ -13,6 +13,7 @@ describe Spree::Core::ControllerHelpers::Order, type: :controller do
13
13
 
14
14
  before do
15
15
  allow(controller).to receive_messages(current_store: store)
16
+ allow(controller).to receive_messages(current_pricing_options: Spree::Config.pricing_options_class.new(currency: Spree::Config.currency))
16
17
  allow(controller).to receive_messages(try_spree_current_user: user)
17
18
  end
18
19
 
@@ -77,13 +78,6 @@ describe Spree::Core::ControllerHelpers::Order, type: :controller do
77
78
  end
78
79
  end
79
80
 
80
- describe '#current_currency' do
81
- it 'returns current currency' do
82
- Spree::Config[:currency] = 'USD'
83
- expect(controller.current_currency).to eq 'USD'
84
- end
85
- end
86
-
87
81
  describe '#ip_address' do
88
82
  it 'returns remote ip' do
89
83
  expect(controller.ip_address).to eq request.remote_ip
@@ -5,8 +5,7 @@ class FakeController < ApplicationController
5
5
  end
6
6
 
7
7
  describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
8
-
9
- controller(FakeController) { }
8
+ controller(FakeController) {}
10
9
 
11
10
  describe '#move_payment_source_into_payments_attributes' do
12
11
  subject do
@@ -17,17 +16,17 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
17
16
  ActionController::Parameters.new(
18
17
  payment_source: {
19
18
  payment_method_1.id.to_s => credit_card_1_params,
20
- payment_method_2.id.to_s => credit_card_2_params,
19
+ payment_method_2.id.to_s => credit_card_2_params
21
20
  },
22
21
  order: {
23
22
  payments_attributes: [
24
23
  {
25
- payment_method_id: payment_method_1.id.to_s,
26
- },
24
+ payment_method_id: payment_method_1.id.to_s
25
+ }
27
26
  ],
28
- other_order_param: 1,
27
+ other_order_param: 1
29
28
  },
30
- other_param: 2,
29
+ other_param: 2
31
30
  )
32
31
  end
33
32
 
@@ -43,12 +42,12 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
43
42
  payments_attributes: [
44
43
  {
45
44
  payment_method_id: payment_method_1.id.to_s,
46
- source_attributes: credit_card_1_params,
47
- },
45
+ source_attributes: credit_card_1_params
46
+ }
48
47
  ],
49
- other_order_param: 1,
48
+ other_order_param: 1
50
49
  },
51
- other_param: 2,
50
+ other_param: 2
52
51
  )
53
52
  )
54
53
  end
@@ -88,10 +87,10 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
88
87
  ActionController::Parameters.new(
89
88
  order: {
90
89
  existing_card: '123',
91
- other_order_param: 1,
90
+ other_order_param: 1
92
91
  },
93
92
  cvc_confirm: '456',
94
- other_param: 2,
93
+ other_param: 2
95
94
  )
96
95
  end
97
96
 
@@ -104,12 +103,12 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
104
103
  source_attributes: {
105
104
  existing_card_id: '123',
106
105
  verification_value: '456'
107
- },
108
- },
106
+ }
107
+ }
109
108
  ],
110
- other_order_param: 1,
109
+ other_order_param: 1
111
110
  },
112
- other_param: 2,
111
+ other_param: 2
113
112
  )
114
113
  )
115
114
  end
@@ -125,13 +124,13 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
125
124
  {
126
125
  source_attributes: {
127
126
  existing_card_id: '123',
128
- verification_value: nil,
129
- },
130
- },
127
+ verification_value: nil
128
+ }
129
+ }
131
130
  ],
132
- other_order_param: 1,
131
+ other_order_param: 1
133
132
  },
134
- other_param: 2,
133
+ other_param: 2
135
134
  )
136
135
  )
137
136
  end
@@ -146,7 +145,6 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
146
145
  before { params[:order].delete(:existing_card) }
147
146
  it('returns the original hash') { expect(subject).to eq(params) }
148
147
  end
149
-
150
148
  end
151
149
 
152
150
  describe '#set_payment_parameters_amount' do
@@ -158,9 +156,9 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
158
156
  ActionController::Parameters.new(
159
157
  order: {
160
158
  payments_attributes: [{}],
161
- other_order_param: 1,
159
+ other_order_param: 1
162
160
  },
163
- other_param: 2,
161
+ other_param: 2
164
162
  )
165
163
  end
166
164
  let(:order) { create(:order_with_line_items, line_items_price: 101.00, line_items_count: 1, shipment_cost: 0) }
@@ -169,10 +167,10 @@ describe Spree::Core::ControllerHelpers::PaymentParameters, type: :controller do
169
167
  expect(subject).to eq(
170
168
  ActionController::Parameters.new(
171
169
  order: {
172
- payments_attributes: [{amount: 101}],
173
- other_order_param: 1,
170
+ payments_attributes: [{ amount: 101 }],
171
+ other_order_param: 1
174
172
  },
175
- other_param: 2,
173
+ other_param: 2
176
174
  )
177
175
  )
178
176
  end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+
3
+ class FakesController < ApplicationController
4
+ include Spree::Core::ControllerHelpers::Pricing
5
+ end
6
+
7
+ describe Spree::Core::ControllerHelpers::Pricing, type: :controller do
8
+ controller(FakesController) {}
9
+
10
+ before do
11
+ allow(controller).to receive(:current_store).and_return(store)
12
+ end
13
+
14
+ describe '#current_currency' do
15
+ subject { controller.current_currency }
16
+
17
+ context "when store default_currency is nil" do
18
+ let(:store) { nil }
19
+ it { Spree::Deprecation.silence { is_expected.to eq('USD') } }
20
+ end
21
+
22
+ context "when the current store default_currency empty" do
23
+ let(:store) { FactoryGirl.create :store, default_currency: '' }
24
+
25
+ it { Spree::Deprecation.silence { is_expected.to eq('USD') } }
26
+ end
27
+
28
+ context "when the current store default_currency is a currency" do
29
+ let(:store) { FactoryGirl.create :store, default_currency: 'EUR' }
30
+
31
+ it { Spree::Deprecation.silence { is_expected.to eq('EUR') } }
32
+ end
33
+ end
34
+
35
+ describe '#current_pricing_options' do
36
+ subject { controller.current_pricing_options }
37
+
38
+ let(:store) { FactoryGirl.create(:store, default_currency: nil) }
39
+
40
+ it { is_expected.to be_a(Spree::Config.pricing_options_class) }
41
+
42
+ context "currency" do
43
+ subject { controller.current_pricing_options.currency }
44
+
45
+ context "when store default_currency is nil" do
46
+ let(:store) { nil }
47
+ it { is_expected.to eq('USD') }
48
+ end
49
+
50
+ context "when the current store default_currency empty" do
51
+ let(:store) { FactoryGirl.create :store, default_currency: '' }
52
+
53
+ it { is_expected.to eq('USD') }
54
+ end
55
+
56
+ context "when the current store default_currency is a currency" do
57
+ let(:store) { FactoryGirl.create :store, default_currency: 'EUR' }
58
+
59
+ it { is_expected.to eq('EUR') }
60
+ end
61
+ end
62
+ end
63
+ end
@@ -9,8 +9,10 @@ describe Spree::Core::ControllerHelpers::Search, type: :controller do
9
9
 
10
10
  describe '#build_searcher' do
11
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')
12
+ allow(controller).to receive_messages(
13
+ try_spree_current_user: create(:user),
14
+ current_pricing_options: Spree::Config.pricing_options_class.new(currency: 'USD')
15
+ )
14
16
  expect(controller.build_searcher({}).class).to eq Spree::Core::Search::Base
15
17
  end
16
18
  end
@@ -20,5 +20,5 @@ module Spree
20
20
  subject.name
21
21
  end
22
22
  end
23
- end
23
+ end
24
24
  end