solidus_core 1.2.3 → 1.3.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -1,21 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Calculator::Returns::DefaultRefundAmount, :type => :model do
4
- let(:order) { create(:order) }
3
+ describe Spree::Calculator::Returns::DefaultRefundAmount, type: :model do
5
4
  let(:line_item_quantity) { 2 }
6
- let(:pre_tax_amount) { 100.0 }
7
- let(:line_item) { create(:line_item, price: 100.0, quantity: line_item_quantity, pre_tax_amount: pre_tax_amount) }
5
+ let(:line_item_price) { 100.0 }
6
+ let(:line_item) { create(:line_item, price: line_item_price, quantity: line_item_quantity) }
8
7
  let(:inventory_unit) { build(:inventory_unit, order: order, line_item: line_item) }
9
8
  let(:return_item) { build(:return_item, inventory_unit: inventory_unit ) }
10
9
  let(:calculator) { Spree::Calculator::Returns::DefaultRefundAmount.new }
11
-
12
- before { order.line_items << line_item }
10
+ let(:order) { line_item.order }
13
11
 
14
12
  subject { calculator.compute(return_item) }
15
13
 
16
14
  context "not an exchange" do
17
15
  context "no promotions or taxes" do
18
- it { is_expected.to eq pre_tax_amount / line_item_quantity }
16
+ it { is_expected.to eq line_item_price }
19
17
  end
20
18
 
21
19
  context "order adjustments" do
@@ -35,7 +33,7 @@ describe Spree::Calculator::Returns::DefaultRefundAmount, :type => :model do
35
33
  order.adjustments.first.update_attributes(amount: adjustment_amount)
36
34
  end
37
35
 
38
- it { is_expected.to eq (pre_tax_amount - adjustment_amount.abs) / line_item_quantity }
36
+ it { is_expected.to eq line_item_price - (adjustment_amount.abs / line_item_quantity) }
39
37
  end
40
38
 
41
39
  context "shipping adjustments" do
@@ -43,7 +41,7 @@ describe Spree::Calculator::Returns::DefaultRefundAmount, :type => :model do
43
41
 
44
42
  before { order.shipments << Spree::Shipment.new(adjustment_total: adjustment_total) }
45
43
 
46
- it { is_expected.to eq pre_tax_amount / line_item_quantity }
44
+ it { is_expected.to eq line_item_price }
47
45
  end
48
46
  end
49
47
 
@@ -53,8 +51,8 @@ describe Spree::Calculator::Returns::DefaultRefundAmount, :type => :model do
53
51
  it { is_expected.to eq 0.0 }
54
52
  end
55
53
 
56
- context "pre_tax_amount is zero" do
57
- let(:pre_tax_amount) { 0.0 }
54
+ context "line item amount is zero" do
55
+ let(:line_item_price) { 0 }
58
56
  it { is_expected.to eq 0.0 }
59
57
  end
60
58
  end
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module Calculator::Shipping
5
- describe FlatPercentItemTotal, :type => :model do
6
- let(:variant1) { build(:variant, :price => 10.11) }
7
- let(:variant2) { build(:variant, :price => 20.2222) }
5
+ describe FlatPercentItemTotal, type: :model do
6
+ let(:variant1) { build(:variant, price: 10.11) }
7
+ let(:variant2) { build(:variant, price: 20.2222) }
8
8
 
9
9
  let(:line_item1) { build(:line_item, variant: variant1) }
10
10
  let(:line_item2) { build(:line_item, variant: variant2) }
@@ -13,7 +13,7 @@ module Spree
13
13
  build(:stock_package, variants_contents: { variant1 => 2, variant2 => 1 })
14
14
  end
15
15
 
16
- subject { FlatPercentItemTotal.new(:preferred_flat_percent => 10) }
16
+ subject { FlatPercentItemTotal.new(preferred_flat_percent: 10) }
17
17
 
18
18
  it "should round result correctly" do
19
19
  expect(subject.compute(package)).to eq(4.04)
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module Calculator::Shipping
5
- describe FlatRate, :type => :model do
6
- subject { Calculator::Shipping::FlatRate.new(:preferred_amount => 4.00) }
5
+ describe FlatRate, type: :model do
6
+ subject { Calculator::Shipping::FlatRate.new(preferred_amount: 4.00) }
7
7
 
8
8
  it 'always returns the same rate' do
9
9
  expect(subject.compute(build(:stock_package_fulfilled))).to eql 4.00
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module Calculator::Shipping
5
- describe FlexiRate, :type => :model do
6
- let(:variant1) { build(:variant, :price => 10) }
7
- let(:variant2) { build(:variant, :price => 20) }
5
+ describe FlexiRate, type: :model do
6
+ let(:variant1) { build(:variant, price: 10) }
7
+ let(:variant2) { build(:variant, price: 20) }
8
8
 
9
9
  let(:package) do
10
10
  build(:stock_package, variants_contents: { variant1 => 4, variant2 => 6 })
@@ -41,12 +41,11 @@ module Spree
41
41
  end
42
42
 
43
43
  it "should allow creation of new object with all the attributes" do
44
- FlexiRate.new(:preferred_first_item => 1,
45
- :preferred_additional_item => 1,
46
- :preferred_max_items => 1)
44
+ FlexiRate.new(preferred_first_item: 1,
45
+ preferred_additional_item: 1,
46
+ preferred_max_items: 1)
47
47
  end
48
48
  end
49
49
  end
50
50
  end
51
51
  end
52
-
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module Calculator::Shipping
5
- describe PerItem, :type => :model do
5
+ describe PerItem, type: :model do
6
6
  let(:variant1) { build(:variant) }
7
7
  let(:variant2) { build(:variant) }
8
8
 
@@ -10,7 +10,7 @@ module Spree
10
10
  build(:stock_package, variants_contents: { variant1 => 5, variant2 => 3 })
11
11
  end
12
12
 
13
- subject { PerItem.new(:preferred_amount => 10) }
13
+ subject { PerItem.new(preferred_amount: 10) }
14
14
 
15
15
  it "correctly calculates per item shipping" do
16
16
  expect(subject.compute(package).to_f).to eq(80) # 5 x 10 + 3 x 10
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Calculator::PriceSack, :type => :model do
3
+ describe Spree::Calculator::PriceSack, type: :model do
4
4
  let(:calculator) do
5
5
  calculator = Spree::Calculator::PriceSack.new
6
6
  calculator.preferred_minimal_amount = 5
@@ -10,7 +10,7 @@ describe Spree::Calculator::PriceSack, :type => :model do
10
10
  end
11
11
 
12
12
  let(:order) { stub_model(Spree::Order) }
13
- let(:shipment) { stub_model(Spree::Shipment, :amount => 10) }
13
+ let(:shipment) { stub_model(Spree::Shipment, amount: 10) }
14
14
 
15
15
  # Regression test for https://github.com/spree/spree/issues/714 and https://github.com/spree/spree/issues/739
16
16
  it "computes with an order object" do
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Calculator::TieredFlatRate, :type => :model do
3
+ describe Spree::Calculator::TieredFlatRate, type: :model do
4
4
  let(:calculator) { Spree::Calculator::TieredFlatRate.new }
5
5
 
6
6
  describe "#valid?" do
@@ -33,4 +33,3 @@ describe Spree::Calculator::TieredFlatRate, :type => :model do
33
33
  end
34
34
  end
35
35
  end
36
-
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Calculator::TieredPercent, :type => :model do
3
+ describe Spree::Calculator::TieredPercent, type: :model do
4
4
  let(:calculator) { Spree::Calculator::TieredPercent.new }
5
5
 
6
6
  describe "#valid?" do
@@ -1,10 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
-
4
- describe Spree::Calculator, :type => :model do
5
-
3
+ describe Spree::Calculator, type: :model do
6
4
  class SimpleCalculator < Spree::Calculator
7
- def compute_simple_computable line_item
5
+ def compute_simple_computable(_line_item)
8
6
  'computed'
9
7
  end
10
8
  end
@@ -12,16 +10,14 @@ describe Spree::Calculator, :type => :model do
12
10
  class SimpleComputable
13
11
  end
14
12
 
15
-
16
13
  context "with computable" do
17
-
18
14
  let(:calculator) { SimpleCalculator.new }
19
15
  let(:computable) { SimpleComputable.new }
20
16
 
21
17
  subject { SimpleCalculator.new.compute computable }
22
18
 
23
19
  it 'calls compute method of class type' do
24
- expect(subject).to eq ( 'computed' )
20
+ expect(subject).to eq 'computed'
25
21
  end
26
22
 
27
23
  context 'computable does not implement right function name' do
@@ -31,6 +27,5 @@ describe Spree::Calculator, :type => :model do
31
27
  expect { subject }.to raise_error NotImplementedError, /Please implement \'compute_line_item\(line_item\)\' in your calculator/
32
28
  end
33
29
  end
34
-
35
30
  end
36
31
  end
@@ -105,7 +105,7 @@ describe Spree::Carton do
105
105
  it "contains only the items in both the carton and order" do
106
106
  expect(subject.map(&:line_item)).to eq [first_line_item]
107
107
  end
108
- end
108
+ end
109
109
 
110
110
  describe "#any_exchanges?" do
111
111
  subject { carton.any_exchanges? }
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Classification, :type => :model do
4
+ describe Classification, type: :model do
5
5
  # Regression test for https://github.com/spree/spree/issues/3494
6
6
  it "cannot link the same taxon to the same product more than once" do
7
7
  product = create(:product)
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
-
5
4
  describe DisplayMoney do
6
5
  let(:test_class) do
7
6
  Class.new do
@@ -5,9 +5,34 @@ describe Spree::OrderedPropertyValueList do
5
5
  # Using ProductProperty as a subject
6
6
  # since it includes OrderedPropertyValueList
7
7
  #
8
- let(:product_property) { create(:product_property) }
8
+
9
+ context 'positioning' do
10
+ let(:product_1) { create(:product) }
11
+ let!(:property_1) { create(:product_property, product: product_1) }
12
+ let!(:property_2) { create(:product_property, product: product_1) }
13
+
14
+ let(:product_2) { create(:product) }
15
+ let!(:property_3) { create(:product_property, product: product_2) }
16
+ let!(:property_4) { create(:product_property, product: product_2) }
17
+
18
+ before do
19
+ property_1.update_attribute(:position, 0)
20
+ property_2.update_attribute(:position, 1)
21
+ property_3.update_attribute(:position, 0)
22
+ property_4.update_attribute(:position, 1)
23
+ end
24
+
25
+ it 'scopes position to the product' do
26
+ expect(property_1.reload.position).to eq(0)
27
+ expect(property_2.reload.position).to eq(1)
28
+ expect(property_3.reload.position).to eq(0)
29
+ expect(property_4.reload.position).to eq(1)
30
+ end
31
+ end
9
32
 
10
33
  context "validations" do
34
+ let(:product_property) { create(:product_property) }
35
+
11
36
  # Only MySQL stores or stores that were migrated prior to the Rails 4.2
12
37
  # upgrade have length limitations on "value":
13
38
  # > The PostgreSQL and SQLite adapters no longer add a default limit of 255
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  describe UserAddressBook do
5
-
6
5
  #
7
6
  # Using LegacyUser as a subject
8
7
  # since it uses the UserAddressBookExtension
@@ -50,7 +49,6 @@ module Spree
50
49
  end
51
50
 
52
51
  context "an odd flip-flop corner case discovered running backfill rake task" do
53
-
54
52
  before do
55
53
  user.save_in_address_book(original_default_address.attributes, true)
56
54
  user.save_in_address_book(address.attributes, true)
@@ -77,7 +75,7 @@ module Spree
77
75
  end
78
76
 
79
77
  context "and changing another address field at the same time" do
80
- let(:updated_address_attributes) { address.attributes.tap {|a| a[:first_name] = "Newbie"} }
78
+ let(:updated_address_attributes) { address.attributes.tap { |a| a[:first_name] = "Newbie" } }
81
79
 
82
80
  subject { user.save_in_address_book(updated_address_attributes, true) }
83
81
 
@@ -104,7 +102,7 @@ module Spree
104
102
  let(:address1) { create(:address) }
105
103
  let(:address2) { create(:address, firstname: "Different") }
106
104
  let(:updated_attrs) do
107
- address2.attributes.tap {|a| a[:firstname] = "Johnny" }
105
+ address2.attributes.tap { |a| a[:firstname] = "Johnny" }
108
106
  end
109
107
 
110
108
  before do
@@ -220,7 +218,7 @@ module Spree
220
218
  context "#remove_from_address_book" do
221
219
  let(:address1) { create(:address) }
222
220
  let(:address2) { create(:address, firstname: "Different") }
223
- let(:remove_id) { address1.id}
221
+ let(:remove_id) { address1.id }
224
222
  subject { user.remove_from_address_book(remove_id) }
225
223
 
226
224
  before do
@@ -240,11 +238,20 @@ module Spree
240
238
  end
241
239
 
242
240
  it "returns false if the addresses is not there" do
243
- expect(user.remove_from_address_book(42)).to be false
241
+ expect(user.remove_from_address_book(0)).to be false
244
242
  end
245
243
  end
246
244
 
247
245
  context "#persist_order_address" do
246
+ it 'will save the bill/ship_address reference if it can' do
247
+ order = create :order
248
+ user.persist_order_address(order)
249
+
250
+ expect( user.bill_address_id ).to eq order.bill_address_id
251
+ expect( user.ship_address_id ).to eq order.ship_address_id
252
+ expect( user.bill_address_id ).not_to eq user.ship_address_id
253
+ end
254
+
248
255
  context "when automatic_default_address preference is at a default of true" do
249
256
  before do
250
257
  Spree::Config.automatic_default_address = true
@@ -261,8 +268,8 @@ module Spree
261
268
  context "when automatic_default_address preference is false" do
262
269
  before do
263
270
  Spree::Config.automatic_default_address = false
264
- expect(user).to receive(:save_in_address_book).with(kind_of(Hash),false).twice
265
- #and not the optional 2nd argument
271
+ expect(user).to receive(:save_in_address_book).with(kind_of(Hash), false).twice
272
+ # and not the optional 2nd argument
266
273
  end
267
274
 
268
275
  it "does not set the default: true flag" do
@@ -307,11 +314,11 @@ module Spree
307
314
  user.persist_order_address(order)
308
315
  end
309
316
 
310
- it "does not call save_in_address_book on bill address" do
311
- order = build(:order)
312
- order.bill_address = nil
317
+ it "does not call save_in_address_book on bill address" do
318
+ order = build(:order)
319
+ order.bill_address = nil
313
320
 
314
- user.persist_order_address(order)
321
+ user.persist_order_address(order)
315
322
  end
316
323
  end
317
324
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::UserMethods do
4
- let(:test_user) { create :user }
4
+ let(:test_user) { create :user }
5
5
 
6
6
  describe '#has_spree_role?' do
7
7
  subject { test_user.has_spree_role? name }
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Country, type: :model do
4
+ describe '.default' do
5
+ before do
6
+ create(:country, iso: "DE", id: 1)
7
+ create(:country, id: 2)
8
+ end
9
+
10
+ subject(:default_country) { described_class.default }
11
+
12
+ context 'with the configuration setting an existing legacy default country ID' do
13
+ before do
14
+ Spree::Config[:default_country_id] = 2
15
+ end
16
+
17
+ it 'emits a deprecation warning' do
18
+ expect(ActiveSupport::Deprecation).to receive(:warn)
19
+ default_country
20
+ end
21
+
22
+ it 'is the country with that ID' do
23
+ expect(default_country).to eq(Spree::Country.find(2))
24
+ end
25
+ end
26
+
27
+ context 'with the configuration setting a non-existing legacy default country ID' do
28
+ before do
29
+ Spree::Config[:default_country_id] = 0
30
+ end
31
+
32
+ it 'loads the country configured by the ISO code' do
33
+ expect(default_country).to eq(Spree::Country.find(2))
34
+ end
35
+ end
36
+
37
+ context 'with the configuration setting an existing ISO code' do
38
+ it 'is a country with the configurations ISO code' do
39
+ expect(described_class.default).to be_a(Spree::Country)
40
+ expect(described_class.default.iso).to eq('US')
41
+ end
42
+ end
43
+
44
+ context 'with the configuration setting an non-existing ISO code' do
45
+ before { Spree::Config[:default_country_iso] = "ZZ" }
46
+
47
+ it 'raises a Record not Found error' do
48
+ expect { described_class.default }.to raise_error(ActiveRecord::RecordNotFound)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -17,9 +17,8 @@ describe Spree::CreditCard, type: :model do
17
17
  let(:credit_card) { Spree::CreditCard.new }
18
18
 
19
19
  before(:each) do
20
-
21
20
  @order = create(:order)
22
- @payment = Spree::Payment.create(:amount => 100, :order => @order)
21
+ @payment = Spree::Payment.create(amount: 100, order: @order)
23
22
 
24
23
  @success_response = double('gateway_response', success?: true, authorization: '123', avs_result: { 'code' => 'avs-code' })
25
24
  @fail_response = double('gateway_response', success?: false)
@@ -30,7 +29,7 @@ describe Spree::CreditCard, type: :model do
30
29
  purchase: @success_response,
31
30
  capture: @success_response,
32
31
  void: @success_response,
33
- credit: @success_response,
32
+ credit: @success_response
34
33
  )
35
34
 
36
35
  allow(@payment).to receive_messages payment_method: @payment_gateway
@@ -117,10 +116,17 @@ describe Spree::CreditCard, type: :model do
117
116
  end
118
117
 
119
118
  let!(:persisted_card) { Spree::CreditCard.find(credit_card.id) }
120
- let (:valid_address_attributes) { {firstname: "Hugo", lastname: "Furst",
121
- address1: "123 Main", city: "Somewhere",
122
- country_id: 1, zipcode: 55555,
123
- phone: "1234567890"} }
119
+ let(:valid_address_attributes) do
120
+ {
121
+ firstname: "Hugo",
122
+ lastname: "Furst",
123
+ address1: "123 Main",
124
+ city: "Somewhere",
125
+ country_id: 1,
126
+ zipcode: 55_555,
127
+ phone: "1234567890"
128
+ }
129
+ end
124
130
 
125
131
  it "should not actually store the number" do
126
132
  expect(persisted_card.number).to be_blank
@@ -131,10 +137,10 @@ describe Spree::CreditCard, type: :model do
131
137
  end
132
138
 
133
139
  it "should save and update addresses through nested attributes" do
134
- persisted_card.update_attributes({address_attributes: valid_address_attributes})
140
+ persisted_card.update_attributes({ address_attributes: valid_address_attributes })
135
141
  persisted_card.save!
136
- updated_attributes = {id: persisted_card.address.id, address1: "123 Main St."}
137
- persisted_card.update_attributes({address_attributes: updated_attributes})
142
+ updated_attributes = { id: persisted_card.address.id, address1: "123 Main St." }
143
+ persisted_card.update_attributes({ address_attributes: updated_attributes })
138
144
  expect(persisted_card.address.address1).to eq "123 Main St."
139
145
  end
140
146
  end
@@ -149,7 +155,7 @@ describe Spree::CreditCard, type: :model do
149
155
  end
150
156
 
151
157
  it "should not raise an exception on non-string input" do
152
- credit_card.number = Hash.new
158
+ credit_card.number = {}
153
159
  expect(credit_card.number).to be_nil
154
160
  end
155
161
  end
@@ -200,7 +206,6 @@ describe Spree::CreditCard, type: :model do
200
206
  it "does not blow up when passed one number" do
201
207
  credit_card.expiry = '12'
202
208
  end
203
-
204
209
  end
205
210
 
206
211
  context "#cc_type=" do
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::CustomerReturn, :type => :model do
3
+ describe Spree::CustomerReturn, type: :model do
4
4
  before do
5
5
  allow_any_instance_of(Spree::Order).to receive_messages(return!: true)
6
6
  end
@@ -33,7 +33,6 @@ describe Spree::CustomerReturn, :type => :model do
33
33
  subject
34
34
  expect(customer_return.errors.full_messages).to include(Spree.t(:return_items_cannot_be_associated_with_multiple_orders))
35
35
  end
36
-
37
36
  end
38
37
 
39
38
  context "return items are part of the same order" do
@@ -73,52 +72,60 @@ describe Spree::CustomerReturn, :type => :model do
73
72
  end
74
73
 
75
74
  describe "#total" do
76
- let(:pre_tax_amount) { 15.0 }
77
- let(:tax_amount) { 5.0 }
75
+ let(:amount) { 15.0 }
76
+ let(:tax_amount) { 5.0 }
78
77
  let(:customer_return) { create(:customer_return, line_items_count: 2) }
79
78
 
80
79
  before do
81
- Spree::ReturnItem.where(customer_return_id: customer_return.id).update_all(pre_tax_amount: pre_tax_amount, additional_tax_total: tax_amount)
80
+ Spree::ReturnItem.where(customer_return_id: customer_return.id).update_all(amount: amount, additional_tax_total: tax_amount)
82
81
  customer_return.reload
83
82
  end
84
83
 
85
84
  subject { customer_return.total }
86
85
 
87
86
  it "returns the sum of the return item's total amount" do
88
- expect(subject).to eq ((pre_tax_amount * 2) + (tax_amount * 2))
87
+ expect(subject).to eq((amount * 2) + (tax_amount * 2))
89
88
  end
90
89
  end
91
90
 
92
91
  describe "#display_total" do
93
- let(:customer_return) { Spree::CustomerReturn.new }
92
+ let(:customer_return) { stub_model(Spree::CustomerReturn, total: 21.22, currency: "GBP") }
94
93
 
95
94
  it "returns a Spree::Money" do
96
- allow(customer_return).to receive_messages(total: 21.22)
97
- expect(customer_return.display_total).to eq(Spree::Money.new(21.22))
95
+ expect(customer_return.display_total).to eq(Spree::Money.new(21.22, currency: "GBP"))
96
+ end
97
+ end
98
+
99
+ describe "#currency" do
100
+ let(:order) { stub_model(Spree::Order, currency: "GBP") }
101
+ let(:customer_return) { stub_model(Spree::CustomerReturn, order: order) }
102
+
103
+ it 'returns the order currency' do
104
+ expect(Spree::Config.currency).to eq("USD")
105
+ expect(customer_return.currency).to eq("GBP")
98
106
  end
99
107
  end
100
108
 
101
- describe "#pre_tax_total" do
102
- let(:pre_tax_amount) { 15.0 }
109
+ describe "#amount" do
110
+ let(:amount) { 15.0 }
103
111
  let(:customer_return) { create(:customer_return, line_items_count: 2) }
104
112
 
105
113
  before do
106
- Spree::ReturnItem.where(customer_return_id: customer_return.id).update_all(pre_tax_amount: pre_tax_amount)
114
+ Spree::ReturnItem.where(customer_return_id: customer_return.id).update_all(amount: amount)
107
115
  end
108
116
 
109
- subject { customer_return.pre_tax_total }
117
+ subject { customer_return.amount }
110
118
 
111
- it "returns the sum of the return item's pre_tax_amount" do
112
- expect(subject).to eq (pre_tax_amount * 2)
119
+ it "returns the sum of the return item's amount" do
120
+ expect(subject).to eq(amount * 2)
113
121
  end
114
122
  end
115
123
 
116
- describe "#display_pre_tax_total" do
117
- let(:customer_return) { Spree::CustomerReturn.new }
124
+ describe "#display_amount" do
125
+ let(:customer_return) { stub_model(Spree::CustomerReturn, amount: 21.22, currency: "RUB") }
118
126
 
119
127
  it "returns a Spree::Money" do
120
- allow(customer_return).to receive_messages(pre_tax_total: 21.22)
121
- expect(customer_return.display_pre_tax_total).to eq(Spree::Money.new(21.22))
128
+ expect(customer_return.display_amount).to eq(Spree::Money.new(21.22, currency: "RUB"))
122
129
  end
123
130
  end
124
131
 
@@ -159,7 +166,6 @@ describe Spree::CustomerReturn, :type => :model do
159
166
  let(:return_item) { build(:return_item, inventory_unit: inventory_unit) }
160
167
 
161
168
  context "to the initial stock location" do
162
-
163
169
  it "should mark the received inventory units are returned" do
164
170
  create(:customer_return_without_return_items, return_items: [return_item], stock_location_id: inventory_unit.shipment.stock_location_id)
165
171
  return_item.receive!
@@ -189,7 +195,7 @@ describe Spree::CustomerReturn, :type => :model do
189
195
  end
190
196
 
191
197
  context "to a different stock location" do
192
- let(:new_stock_location) { create(:stock_location, :name => "other") }
198
+ let(:new_stock_location) { create(:stock_location, name: "other") }
193
199
 
194
200
  it "should update the stock item counts in new stock location" do
195
201
  expect {
@@ -213,7 +219,6 @@ describe Spree::CustomerReturn, :type => :model do
213
219
  end
214
220
 
215
221
  context "it was not received" do
216
-
217
222
  before do
218
223
  return_item.update_attributes!(reception_status: "lost_in_transit")
219
224
  end
@@ -243,7 +248,6 @@ describe Spree::CustomerReturn, :type => :model do
243
248
  end
244
249
 
245
250
  context 'when all return items are decided' do
246
-
247
251
  context 'when all return items are rejected' do
248
252
  before { customer_return.return_items.each(&:reject!) }
249
253
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Exchange, :type => :model do
4
+ describe Exchange, type: :model do
5
5
  let(:order) { Spree::Order.new }
6
6
 
7
7
  let(:return_item_1) { build(:exchange_return_item) }
@@ -52,7 +52,7 @@ module Spree
52
52
 
53
53
  context "when it cannot create shipments for all items" do
54
54
  before do
55
- StockItem.where(:variant_id => return_item.exchange_variant_id).destroy_all
55
+ StockItem.where(variant_id: return_item.exchange_variant_id).destroy_all
56
56
  end
57
57
 
58
58
  it 'raises an UnableToCreateShipments error' do
@@ -70,10 +70,5 @@ module Spree
70
70
  describe ".param_key" do # for dom_id
71
71
  it { expect(Exchange.param_key).to eq "spree_exchange" }
72
72
  end
73
-
74
- describe ".model_name" do # for dom_id
75
- it { expect(Exchange.model_name).to eq Spree::Exchange }
76
- end
77
-
78
73
  end
79
74
  end