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
@@ -8,7 +8,7 @@ RSpec.describe 'stock package factory' do
8
8
  let(:factory) { :stock_package }
9
9
 
10
10
  it "builds successfully" do
11
- expect(build factory).to be_a(factory_class)
11
+ expect(build(factory)).to be_a(factory_class)
12
12
  end
13
13
 
14
14
  # No test for .create, as it's a PORO
@@ -18,7 +18,7 @@ RSpec.describe 'stock package factory' do
18
18
  let(:factory) { :stock_package_fulfilled }
19
19
 
20
20
  it "builds successfully" do
21
- expect(build factory).to be_a(factory_class)
21
+ expect(build(factory)).to be_a(factory_class)
22
22
  end
23
23
 
24
24
  # No test for .create, as it's a PORO
@@ -8,7 +8,7 @@ RSpec.describe 'stock packer factory' do
8
8
  let(:factory) { :stock_packer }
9
9
 
10
10
  it "builds successfully" do
11
- expect(build factory).to be_a(factory_class)
11
+ expect(build(factory)).to be_a(factory_class)
12
12
  end
13
13
 
14
14
  # No test for .create, as it's a PORO
@@ -7,9 +7,8 @@ RSpec.describe 'store credit event factory' do
7
7
  describe 'plain store credit event' do
8
8
  let(:factory) { :store_credit_event }
9
9
 
10
-
11
10
  it "builds successfully" do
12
- expect(build factory).to be_a(factory_class)
11
+ expect(build(factory)).to be_a(factory_class)
13
12
  end
14
13
 
15
14
  # No test for .create, as this base factory misses an `action`
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Spree::TestingSupport::Preferences do
4
+ describe 'resetting the app configuration' do
5
+ before do
6
+ @original_spree_mails_from = Spree::Config.mails_from
7
+ @original_spree_searcher_class = Spree::Config.searcher_class
8
+ class MySearcherClass; end
9
+ include Spree::TestingSupport::Preferences
10
+ Spree::Config.mails_from = "hello@myserver.com"
11
+ Spree::Config.searcher_class = MySearcherClass
12
+ end
13
+
14
+ it 'resets normal preferences' do
15
+ expect(Spree::Config.mails_from).to eq("hello@myserver.com")
16
+ reset_spree_preferences
17
+ expect(Spree::Config.mails_from).to eq(@original_spree_mails_from)
18
+ end
19
+
20
+ it 'resets cached configuration instance variables' do
21
+ expect(Spree::Config.searcher_class).to eq(MySearcherClass)
22
+ reset_spree_preferences
23
+ expect(Spree::Config.searcher_class).to eq(@original_spree_searcher_class)
24
+ end
25
+ end
26
+ end
@@ -1,17 +1,21 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::UnreturnedItemCharger do
4
- let(:shipped_order) { create(:shipped_order, line_items_count: 1, with_cartons: false) }
4
+ let(:ship_address) { create(:address) }
5
+ let(:shipped_order) { create(:shipped_order, ship_address: ship_address, line_items_count: 1, with_cartons: false) }
5
6
  let(:original_shipment) { shipped_order.shipments.first }
6
7
  let(:original_stock_location) { original_shipment.stock_location }
7
8
  let(:original_inventory_unit) { shipped_order.inventory_units.first }
8
9
  let(:original_variant) { original_inventory_unit.variant }
10
+ let(:shipping_method) { create(:shipping_method, tax_category: original_variant.tax_category) }
11
+
9
12
  let(:exchange_shipment) do
10
13
  create(:shipment,
11
14
  order: shipped_order,
12
15
  state: 'shipped',
13
16
  stock_location: original_stock_location,
14
- created_at: 5.days.ago)
17
+ created_at: 5.days.ago,
18
+ shipping_method: shipping_method)
15
19
  end
16
20
  let(:exchange_inventory_unit) { exchange_shipment.inventory_units.first }
17
21
  let(:return_item) do
@@ -43,12 +47,11 @@ describe Spree::UnreturnedItemCharger do
43
47
  end
44
48
 
45
49
  context 'in tax zone' do
46
- let!(:tax_zone) { Spree::Zone.find_by(name: 'GlobalZone') || FactoryGirl.create(:global_zone) }
50
+ let!(:tax_zone) { create(:zone, countries: [ship_address.country]) }
47
51
  let!(:tax_rate) { create(:tax_rate, zone: tax_zone, tax_category: original_variant.tax_category) }
48
52
  before { tax_zone.update_attributes!(default_tax: true) }
49
53
 
50
54
  it "applies tax" do
51
- exchange_shipment.shipping_rates.update_all(tax_rate_id: tax_rate.id)
52
55
  exchange_order = exchange_shipment.order
53
56
  exchange_order.create_tax_charge!
54
57
  exchange_order.update!
@@ -59,11 +62,6 @@ describe Spree::UnreturnedItemCharger do
59
62
  end
60
63
  end
61
64
 
62
- it "updates shipment cost" do
63
- exchange_shipment.update_attributes!(cost: 0)
64
- expect { subject }.to change { exchange_shipment.reload.cost }
65
- end
66
-
67
65
  it "creates a new completed order" do
68
66
  expect { subject }.to change { Spree::Order.count }.by(1)
69
67
  expect(new_order).to_not eq(shipped_order)
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe EmailValidator do
4
-
5
4
  class Tester
6
5
  include ActiveModel::Validations
7
6
  attr_accessor :email_address
8
7
  validates :email_address, email: true
9
8
  end
10
9
 
11
- let(:valid_emails) {[
10
+ let(:valid_emails) {
11
+ [
12
12
  'valid@email.com',
13
13
  'valid@email.com.uk',
14
14
  'e@email.com',
@@ -16,8 +16,10 @@ describe EmailValidator do
16
16
  'valid-email@email.com',
17
17
  'valid_email@email.com',
18
18
  'valid.email@email.com'
19
- ]}
20
- let(:invalid_emails) {[
19
+ ]
20
+ }
21
+ let(:invalid_emails) {
22
+ [
21
23
  'invalid email@email.com',
22
24
  '.invalid.email@email.com',
23
25
  'invalid.email.@email.com',
@@ -27,7 +29,8 @@ describe EmailValidator do
27
29
  '@invalid.email@email.com',
28
30
  'invalid@email@email.com',
29
31
  'invalid.email@@email.com'
30
- ]}
32
+ ]
33
+ }
31
34
 
32
35
  it 'validates valid email addresses' do
33
36
  tester = Tester.new
@@ -44,5 +47,4 @@ describe EmailValidator do
44
47
  expect(tester.valid?).to be false
45
48
  end
46
49
  end
47
-
48
50
  end
@@ -1,12 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::LocalizedNumber do
4
-
5
4
  context ".parse" do
6
5
  before do
7
6
  I18n.enforce_available_locales = false
8
7
  I18n.locale = I18n.default_locale
9
- I18n.backend.store_translations(:de, { :number => { :currency => { :format => { :delimiter => '.', :separator => ',' } } } })
8
+ I18n.backend.store_translations(:de, { number: { currency: { format: { delimiter: '.', separator: ',' } } } })
10
9
  end
11
10
 
12
11
  after do
@@ -34,5 +33,4 @@ describe Spree::LocalizedNumber do
34
33
  end
35
34
  end
36
35
  end
37
-
38
36
  end
@@ -10,7 +10,7 @@ module Spree
10
10
  let(:engine_dir) { "dir/db/migrate" }
11
11
  let(:app_dir) { "#{Rails.root}/db/migrate" }
12
12
 
13
- subject { described_class.new(config, "spree") }
13
+ subject { described_class.new(config, "spree") }
14
14
 
15
15
  before do
16
16
  expect(File).to receive(:directory?).with(app_dir).and_return true
@@ -28,7 +28,7 @@ module Spree
28
28
  context "no missing migrations" do
29
29
  it "says nothing" do
30
30
  expect(Dir).to receive(:entries).with(engine_dir).and_return engine_migrations
31
- expect(Dir).to receive(:entries).with(app_dir).and_return (app_migrations + engine_migrations)
31
+ expect(Dir).to receive(:entries).with(app_dir).and_return(app_migrations + engine_migrations)
32
32
  expect(subject.check).to eq nil
33
33
  end
34
34
  end
@@ -20,7 +20,7 @@ describe Spree::Money do
20
20
 
21
21
  context "with currency" do
22
22
  it "passed in option" do
23
- money = Spree::Money.new(10, :with_currency => true, :html => false)
23
+ money = Spree::Money.new(10, with_currency: true, html: false)
24
24
  expect(money.to_s).to eq("$10.00 USD")
25
25
  end
26
26
  end
@@ -40,14 +40,14 @@ describe Spree::Money do
40
40
  context "currency parameter" do
41
41
  context "when currency is specified in Canadian Dollars" do
42
42
  it "uses the currency param over the global configuration" do
43
- money = Spree::Money.new(10, :currency => 'CAD', :with_currency => true, :html => false)
43
+ money = Spree::Money.new(10, currency: 'CAD', with_currency: true, html: false)
44
44
  expect(money.to_s).to eq("$10.00 CAD")
45
45
  end
46
46
  end
47
47
 
48
48
  context "when currency is specified in Japanese Yen" do
49
49
  it "uses the currency param over the global configuration" do
50
- money = Spree::Money.new(100, :currency => 'JPY', :html => false)
50
+ money = Spree::Money.new(100, currency: 'JPY', html: false)
51
51
  expect(money.to_s).to eq("¥100")
52
52
  end
53
53
  end
@@ -55,7 +55,7 @@ describe Spree::Money do
55
55
 
56
56
  context "symbol positioning" do
57
57
  it "passed in option" do
58
- money = Spree::Money.new(10, :symbol_position => :after, :html => false)
58
+ money = Spree::Money.new(10, symbol_position: :after, html: false)
59
59
  expect(money.to_s).to eq("10.00 $")
60
60
  end
61
61
 
@@ -72,7 +72,7 @@ describe Spree::Money do
72
72
  end
73
73
 
74
74
  it "passed in option" do
75
- money = Spree::Money.new(-10, :sign_before_symbol => false)
75
+ money = Spree::Money.new(-10, sign_before_symbol: false)
76
76
  expect(money.to_s).to eq("$-10.00")
77
77
  end
78
78
  end
@@ -85,7 +85,7 @@ describe Spree::Money do
85
85
  end
86
86
 
87
87
  it "formats correctly" do
88
- money = Spree::Money.new(1000, :html => false)
88
+ money = Spree::Money.new(1000, html: false)
89
89
  expect(money.to_s).to eq("¥1,000")
90
90
  end
91
91
  end
@@ -124,4 +124,73 @@ describe Spree::Money do
124
124
  expect(money.as_json(options)).to eq("$10.00")
125
125
  end
126
126
  end
127
+
128
+ describe 'subtraction' do
129
+ context "for money objects with same currency" do
130
+ let(:money_1) { Spree::Money.new(32.00, currency: "USD") }
131
+ let(:money_2) { Spree::Money.new(15.00, currency: "USD") }
132
+
133
+ it "subtracts correctly" do
134
+ expect(money_1 - money_2).to eq(Spree::Money.new(17.00, currency: "USD"))
135
+ end
136
+ end
137
+
138
+ context "when trying to subtract money objects in different currencies" do
139
+ let(:money_1) { Spree::Money.new(32.00, currency: "EUR") }
140
+ let(:money_2) { Spree::Money.new(15.00, currency: "USD") }
141
+
142
+ it "will not work" do
143
+ expect { money_1 - money_2 }.to raise_error(Money::Bank::UnknownRate)
144
+ end
145
+ end
146
+
147
+ context "if other does not respond to .money" do
148
+ let(:money_1) { Spree::Money.new(32.00, currency: "EUR") }
149
+ let(:money_2) { ::Money.new(1500) }
150
+
151
+ it 'raises a TypeError' do
152
+ expect { money_1 - money_2 }.to raise_error(TypeError)
153
+ end
154
+ end
155
+ end
156
+
157
+ describe 'addition' do
158
+ context "for money objects with same currency" do
159
+ let(:money_1) { Spree::Money.new(37.00, currency: "USD") }
160
+ let(:money_2) { Spree::Money.new(15.00, currency: "USD") }
161
+
162
+ it "subtracts correctly" do
163
+ expect(money_1 + money_2).to eq(Spree::Money.new(52.00, currency: "USD"))
164
+ end
165
+ end
166
+
167
+ context "when trying to subtract money objects in different currencies" do
168
+ let(:money_1) { Spree::Money.new(32.00, currency: "EUR") }
169
+ let(:money_2) { Spree::Money.new(15.00, currency: "USD") }
170
+
171
+ it "will not work" do
172
+ expect { money_1 + money_2 }.to raise_error(Money::Bank::UnknownRate)
173
+ end
174
+ end
175
+
176
+ context "if other does not respond to .money" do
177
+ let(:money_1) { Spree::Money.new(32.00, currency: "EUR") }
178
+ let(:money_2) { ::Money.new(1500) }
179
+
180
+ it 'raises a TypeError' do
181
+ expect { money_1 + money_2 }.to raise_error(TypeError)
182
+ end
183
+ end
184
+ end
185
+
186
+ describe 'equality checks' do
187
+ context "if other does not respond to .money" do
188
+ let(:money_1) { Spree::Money.new(32.00, currency: "EUR") }
189
+ let(:money_2) { ::Money.new(1500) }
190
+
191
+ it 'raises a TypeError' do
192
+ expect { money_1 == money_2 }.to raise_error(TypeError)
193
+ end
194
+ end
195
+ end
127
196
  end
@@ -17,13 +17,10 @@ describe "exchanges:charge_unreturned_items" do
17
17
  end
18
18
 
19
19
  before do
20
- @original_expedited_exchanges_pref = Spree::Config[:expedited_exchanges]
21
20
  Spree::Config[:expedited_exchanges] = true
22
21
  Spree::StockItem.update_all(count_on_hand: 10)
23
22
  end
24
23
 
25
- after { Spree::Config[:expedited_exchanges] = @original_expedited_exchanges_pref }
26
-
27
24
  context "there are no unreturned items" do
28
25
  it { expect { subject.invoke }.not_to change { Spree::Order.count } }
29
26
  end
@@ -39,7 +36,7 @@ describe "exchanges:charge_unreturned_items" do
39
36
  Spree::Shipment.last.ship!
40
37
  return_item_1.lost!
41
38
  return_item_2.give!
42
- Timecop.travel (Spree::Config[:expedited_exchanges_days_window] + 1).days
39
+ Timecop.travel((Spree::Config[:expedited_exchanges_days_window] + 1).days)
43
40
  end
44
41
  after { Timecop.return }
45
42
  it { expect { subject.invoke }.not_to change { Spree::Order.count } }
@@ -70,7 +67,6 @@ describe "exchanges:charge_unreturned_items" do
70
67
  end
71
68
 
72
69
  context "more than the config allowed days have passed" do
73
-
74
70
  let(:travel_time) { (Spree::Config[:expedited_exchanges_days_window] + 1).days }
75
71
 
76
72
  it "creates a new completed order" do
@@ -120,12 +116,9 @@ describe "exchanges:charge_unreturned_items" do
120
116
 
121
117
  context "auto_capture_exchanges is true" do
122
118
  before do
123
- @original_auto_capture_exchanges = Spree::Config[:auto_capture_exchanges]
124
119
  Spree::Config[:auto_capture_exchanges] = true
125
120
  end
126
121
 
127
- after { Spree::Config[:auto_capture_exchanges] = @original_auto_capture_exchanges }
128
-
129
122
  it 'creates a pending payment' do
130
123
  expect { subject.invoke }.to change { Spree::Payment.count }.by(1)
131
124
  payment = Spree::Payment.last
@@ -135,12 +128,9 @@ describe "exchanges:charge_unreturned_items" do
135
128
 
136
129
  context "auto_capture_exchanges is false" do
137
130
  before do
138
- @original_auto_capture_exchanges = Spree::Config[:auto_capture_exchanges]
139
131
  Spree::Config[:auto_capture_exchanges] = false
140
132
  end
141
133
 
142
- after { Spree::Config[:auto_capture_exchanges] = @original_auto_capture_exchanges }
143
-
144
134
  it 'captures payment' do
145
135
  expect { subject.invoke }.to change { Spree::Payment.count }.by(1)
146
136
  payment = Spree::Payment.last
@@ -157,7 +147,7 @@ describe "exchanges:charge_unreturned_items" do
157
147
 
158
148
  it "associates the store of the original order with the exchange order" do
159
149
  store = order.store
160
- expect(Spree::Order).to receive(:create!).once.with(hash_including({store_id: store.id})).and_call_original
150
+ expect(Spree::Order).to receive(:create!).once.with(hash_including({ store_id: store.id })).and_call_original
161
151
  subject.invoke
162
152
  end
163
153
 
@@ -111,5 +111,4 @@ describe 'spree:migrations:copy_shipped_shipments_to_cartons' do
111
111
  expect(preexisting_carton_inventory_units.map(&:reload).map(&:carton_id)).to all(eq preexisting_carton.id)
112
112
  end
113
113
  end
114
-
115
114
  end
@@ -28,7 +28,7 @@ describe "order_capturing:capture_payments" do
28
28
 
29
29
  it "charges the order" do
30
30
  expect(order.inventory_units.any?(&:on_hand?)).to eq false
31
- expect(order.inventory_units.all? {|iu| iu.canceled? || iu.shipped? }).to eq true
31
+ expect(order.inventory_units.all? { |iu| iu.canceled? || iu.shipped? }).to eq true
32
32
  expect {
33
33
  expect { subject.invoke }.to change { payment.reload.state }.to('completed')
34
34
  }.to change { order.reload.payment_state }.to('paid')
@@ -11,8 +11,8 @@ describe Spree::CartonMailer do
11
11
  # Regression test for https://github.com/spree/spree/issues/2196
12
12
  it "doesn't include out of stock in the email body" do
13
13
  shipment_email = Spree::CartonMailer.shipped_email(order: order, carton: carton)
14
- expect(shipment_email.body).not_to include(%Q{Out of Stock})
15
- expect(shipment_email.body).to include(%Q{Your order has been shipped})
14
+ expect(shipment_email.body).not_to include(%{Out of Stock})
15
+ expect(shipment_email.body).to include(%{Your order has been shipped})
16
16
  expect(shipment_email.subject).to eq "#{order.store.name} Shipment Notification ##{order.number}"
17
17
  end
18
18
 
@@ -36,7 +36,7 @@ describe Spree::CartonMailer do
36
36
  context "shipped_email" do
37
37
  context "pt-BR locale" do
38
38
  before do
39
- pt_br_shipped_email = { :spree => { :shipment_mailer => { :shipped_email => { :dear_customer => 'Caro Cliente,' } } } }
39
+ pt_br_shipped_email = { spree: { shipment_mailer: { shipped_email: { dear_customer: 'Caro Cliente,' } } } }
40
40
  I18n.backend.store_translations :'pt-BR', pt_br_shipped_email
41
41
  I18n.locale = :'pt-BR'
42
42
  end
@@ -1,19 +1,19 @@
1
1
  require 'spec_helper'
2
2
  require 'email_spec'
3
3
 
4
- describe Spree::OrderMailer, :type => :mailer do
4
+ describe Spree::OrderMailer, type: :mailer do
5
5
  include EmailSpec::Helpers
6
6
  include EmailSpec::Matchers
7
7
 
8
8
  let(:order) do
9
9
  order = create(:order)
10
- product = stub_model(Spree::Product, :name => %Q{The "BEST" product})
11
- variant = stub_model(Spree::Variant, :product => product)
12
- price = stub_model(Spree::Price, :variant => variant, :amount => 5.00)
10
+ product = stub_model(Spree::Product, name: %{The "BEST" product})
11
+ variant = stub_model(Spree::Variant, product: product)
12
+ price = stub_model(Spree::Price, variant: variant, amount: 5.00)
13
13
  store = FactoryGirl.build :store, mail_from_address: "store@example.com"
14
- line_item = stub_model(Spree::LineItem, :variant => variant, :order => order, :quantity => 1, :price => 4.99)
15
- allow(variant).to receive_messages(:default_price => price)
16
- allow(order).to receive_messages(:line_items => [line_item])
14
+ line_item = stub_model(Spree::LineItem, variant: variant, order: order, quantity: 1, price: 4.99)
15
+ allow(variant).to receive_messages(default_price: price)
16
+ allow(order).to receive_messages(line_items: [line_item])
17
17
  allow(order).to receive(:store).and_return(store)
18
18
  order
19
19
  end
@@ -92,12 +92,11 @@ describe Spree::OrderMailer, :type => :mailer do
92
92
  end
93
93
 
94
94
  context "emails must be translatable" do
95
-
96
95
  context "pt-BR locale" do
97
96
  before do
98
97
  I18n.enforce_available_locales = false
99
- pt_br_confirm_mail = { :spree => { :order_mailer => { :confirm_email => { :dear_customer => 'Caro Cliente,' } } } }
100
- pt_br_cancel_mail = { :spree => { :order_mailer => { :cancel_email => { :order_summary_canceled => 'Resumo da Pedido [CANCELADA]' } } } }
98
+ pt_br_confirm_mail = { spree: { order_mailer: { confirm_email: { dear_customer: 'Caro Cliente,' } } } }
99
+ pt_br_cancel_mail = { spree: { order_mailer: { cancel_email: { order_summary_canceled: 'Resumo da Pedido [CANCELADA]' } } } }
101
100
  I18n.backend.store_translations :'pt-BR', pt_br_confirm_mail
102
101
  I18n.backend.store_translations :'pt-BR', pt_br_cancel_mail
103
102
  I18n.locale = :'pt-BR'
@@ -131,5 +130,4 @@ describe Spree::OrderMailer, :type => :mailer do
131
130
  expect(message.body).to be_blank
132
131
  end
133
132
  end
134
-
135
133
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'email_spec'
3
3
 
4
- describe Spree::ReimbursementMailer, :type => :mailer do
4
+ describe Spree::ReimbursementMailer, type: :mailer do
5
5
  include EmailSpec::Helpers
6
6
  include EmailSpec::Matchers
7
7
 
@@ -18,7 +18,7 @@ describe Spree::ReimbursementMailer, :type => :mailer do
18
18
  context "pt-BR locale" do
19
19
  before do
20
20
  I18n.enforce_available_locales = false
21
- pt_br_shipped_email = { :spree => { :reimbursement_mailer => { :reimbursement_email => { :dear_customer => 'Caro Cliente,' } } } }
21
+ pt_br_shipped_email = { spree: { reimbursement_mailer: { reimbursement_email: { dear_customer: 'Caro Cliente,' } } } }
22
22
  I18n.backend.store_translations :'pt-BR', pt_br_shipped_email
23
23
  I18n.locale = :'pt-BR'
24
24
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'email_spec'
3
3
 
4
- describe Spree::TestMailer, :type => :mailer do
4
+ describe Spree::TestMailer, type: :mailer do
5
5
  include EmailSpec::Helpers
6
6
  include EmailSpec::Matchers
7
7
 
@@ -7,7 +7,7 @@ require 'spree/testing_support/bar_ability'
7
7
  class FooAbility
8
8
  include CanCan::Ability
9
9
 
10
- def initialize(user)
10
+ def initialize(_user)
11
11
  # allow anyone to perform index on Order
12
12
  can :index, Spree::Order
13
13
  # allow anyone to update an Order with id of 1
@@ -17,7 +17,7 @@ class FooAbility
17
17
  end
18
18
  end
19
19
 
20
- describe Spree::Ability, :type => :model do
20
+ describe Spree::Ability, type: :model do
21
21
  let(:user) { build(:user) }
22
22
  let(:ability) { Spree::Ability.new(user) }
23
23
  let(:token) { nil }
@@ -45,7 +45,7 @@ describe Spree::Ability, :type => :model do
45
45
 
46
46
  it 'should apply the registered abilities permissions' do
47
47
  Spree::Ability.register_ability(FooAbility)
48
- expect(Spree::Ability.new(user).can?(:update, mock_model(Spree::Order, user: nil, :id => 1))).to be true
48
+ expect(Spree::Ability.new(user).can?(:update, mock_model(Spree::Order, user: nil, id: 1))).to be true
49
49
  end
50
50
  end
51
51
 
@@ -110,7 +110,7 @@ describe Spree::Ability, :type => :model do
110
110
  # ability.should_not be_able_to :create, resource_user # Fails
111
111
  # It can create new users if is has access to the :admin, User!!
112
112
 
113
- # TODO change the Ability class so only users and customers get the extra premissions?
113
+ # TODO: change the Ability class so only users and customers get the extra premissions?
114
114
 
115
115
  Spree::Ability.remove_ability(BarAbility)
116
116
  end
@@ -127,7 +127,6 @@ describe Spree::Ability, :type => :model do
127
127
  end
128
128
 
129
129
  context 'as Guest User' do
130
-
131
130
  context 'for Country' do
132
131
  let(:resource) { Spree::Country.new }
133
132
  context 'requested by any user' do
@@ -270,7 +269,5 @@ describe Spree::Ability, :type => :model do
270
269
  it_should_behave_like 'read only'
271
270
  end
272
271
  end
273
-
274
272
  end
275
-
276
273
  end