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,31 +1,32 @@
1
1
  require 'spec_helper'
2
2
  require 'spree/testing_support/order_walkthrough'
3
3
 
4
- describe Spree::Order, :type => :model do
5
- let(:order) { Spree::Order.new }
4
+ describe Spree::Order, type: :model do
5
+ let!(:store) { create(:store) }
6
+ let(:order) { Spree::Order.new(store: store) }
6
7
 
7
8
  def assert_state_changed(order, from, to)
8
- state_change_exists = order.state_changes.where(:previous_state => from, :next_state => to).exists?
9
+ state_change_exists = order.state_changes.where(previous_state: from, next_state: to).exists?
9
10
  assert state_change_exists, "Expected order to transition from #{from} to #{to}, but didn't."
10
11
  end
11
12
 
12
13
  context "with default state machine" do
13
14
  transitions = [
14
- { :address => :delivery },
15
- { :delivery => :payment },
16
- { :payment => :confirm },
17
- { :delivery => :confirm },
15
+ { address: :delivery },
16
+ { delivery: :payment },
17
+ { payment: :confirm },
18
+ { delivery: :confirm }
18
19
  ]
19
20
 
20
21
  transitions.each do |transition|
21
22
  it "transitions from #{transition.keys.first} to #{transition.values.first}" do
22
- transition = Spree::Order.find_transition(:from => transition.keys.first, :to => transition.values.first)
23
+ transition = Spree::Order.find_transition(from: transition.keys.first, to: transition.values.first)
23
24
  expect(transition).not_to be_nil
24
25
  end
25
26
  end
26
27
 
27
28
  it '.find_transition when contract was broken' do
28
- expect(Spree::Order.find_transition({foo: :bar, baz: :dog})).to be_falsey
29
+ expect(Spree::Order.find_transition({ foo: :bar, baz: :dog })).to be_falsey
29
30
  end
30
31
 
31
32
  describe "remove_transition" do
@@ -34,7 +35,7 @@ describe Spree::Order, :type => :model do
34
35
  end
35
36
 
36
37
  it '.remove_transition' do
37
- options = {:from => transitions.first.keys.first, :to => transitions.first.values.first}
38
+ options = { from: transitions.first.keys.first, to: transitions.first.values.first }
38
39
  allow(Spree::Order).to receive(:next_event_transition).and_return([options])
39
40
  expect(Spree::Order.remove_transition(options)).to be_truthy
40
41
  end
@@ -50,7 +51,7 @@ describe Spree::Order, :type => :model do
50
51
  end
51
52
 
52
53
  it "passes delivery state when transitioning from address over delivery to payment" do
53
- allow(order).to receive_messages :payment_required? => true
54
+ allow(order).to receive_messages payment_required?: true
54
55
  order.state = "address"
55
56
  expect(order.passed_checkout_step?("delivery")).to be false
56
57
  order.state = "delivery"
@@ -62,7 +63,7 @@ describe Spree::Order, :type => :model do
62
63
  context "#checkout_steps" do
63
64
  context "when confirmation not required" do
64
65
  before do
65
- allow(order).to receive_messages :payment_required? => true
66
+ allow(order).to receive_messages payment_required?: true
66
67
  end
67
68
 
68
69
  specify do
@@ -72,7 +73,7 @@ describe Spree::Order, :type => :model do
72
73
 
73
74
  context "when confirmation required" do
74
75
  before do
75
- allow(order).to receive_messages :payment_required? => true
76
+ allow(order).to receive_messages payment_required?: true
76
77
  end
77
78
 
78
79
  specify do
@@ -81,14 +82,14 @@ describe Spree::Order, :type => :model do
81
82
  end
82
83
 
83
84
  context "when payment not required" do
84
- before { allow(order).to receive_messages :payment_required? => false }
85
+ before { allow(order).to receive_messages payment_required?: false }
85
86
  specify do
86
87
  expect(order.checkout_steps).to eq(%w(address delivery confirm complete))
87
88
  end
88
89
  end
89
90
 
90
91
  context "when payment required" do
91
- before { allow(order).to receive_messages :payment_required? => true }
92
+ before { allow(order).to receive_messages payment_required?: true }
92
93
  specify do
93
94
  expect(order.checkout_steps).to eq(%w(address delivery payment confirm complete))
94
95
  end
@@ -166,7 +167,7 @@ describe Spree::Order, :type => :model do
166
167
  before do
167
168
  order.state = 'address'
168
169
  order.ship_address = ship_address
169
- shipment = FactoryGirl.create(:shipment, :order => order, :cost => 10)
170
+ FactoryGirl.create(:shipment, order: order, cost: 10)
170
171
  order.email = "user@example.com"
171
172
  order.save!
172
173
  end
@@ -180,11 +181,11 @@ describe Spree::Order, :type => :model do
180
181
  end
181
182
 
182
183
  it "updates totals" do
183
- line_item = FactoryGirl.create(:line_item, :price => 10, :adjustment_total => 10)
184
+ line_item = FactoryGirl.create(:line_item, price: 10, adjustment_total: 10)
184
185
  order.line_items << line_item
185
- tax_rate = create(:tax_rate, :tax_category => line_item.tax_category, :amount => 0.05)
186
- allow(Spree::TaxRate).to receive_messages :match => [tax_rate]
187
- FactoryGirl.create(:tax_adjustment, :adjustable => line_item, :source => tax_rate, order: order)
186
+ tax_rate = create(:tax_rate, tax_category: line_item.tax_category, amount: 0.05)
187
+ allow(Spree::TaxRate).to receive_messages match: [tax_rate]
188
+ FactoryGirl.create(:tax_adjustment, adjustable: line_item, source: tax_rate, order: order)
188
189
  order.email = "user@example.com"
189
190
  order.next!
190
191
  expect(order.adjustment_total).to eq(0.5)
@@ -194,7 +195,7 @@ describe Spree::Order, :type => :model do
194
195
  end
195
196
 
196
197
  it "transitions to delivery" do
197
- allow(order).to receive_messages(:ensure_available_shipping_rates => true)
198
+ allow(order).to receive_messages(ensure_available_shipping_rates: true)
198
199
  order.next!
199
200
  assert_state_changed(order, 'address', 'delivery')
200
201
  expect(order.state).to eq("delivery")
@@ -202,7 +203,7 @@ describe Spree::Order, :type => :model do
202
203
 
203
204
  it "does not call persist_order_address if there is no address on the order" do
204
205
  # otherwise, it will crash
205
- allow(order).to receive_messages(:ensure_available_shipping_rates => true)
206
+ allow(order).to receive_messages(ensure_available_shipping_rates: true)
206
207
 
207
208
  order.user = FactoryGirl.create(:user)
208
209
  order.save!
@@ -212,7 +213,7 @@ describe Spree::Order, :type => :model do
212
213
  end
213
214
 
214
215
  it "calls persist_order_address on the order's user" do
215
- allow(order).to receive_messages(:ensure_available_shipping_rates => true)
216
+ allow(order).to receive_messages(ensure_available_shipping_rates: true)
216
217
 
217
218
  order.user = FactoryGirl.create(:user)
218
219
  order.ship_address = FactoryGirl.create(:address)
@@ -224,7 +225,7 @@ describe Spree::Order, :type => :model do
224
225
  end
225
226
 
226
227
  it "does not call persist_order_address on the order's user for a temporary address" do
227
- allow(order).to receive_messages(:ensure_available_shipping_rates => true)
228
+ allow(order).to receive_messages(ensure_available_shipping_rates: true)
228
229
 
229
230
  order.user = FactoryGirl.create(:user)
230
231
  order.temporary_address = true
@@ -245,9 +246,11 @@ describe Spree::Order, :type => :model do
245
246
  context 'when order has default selected_shipping_rate_id' do
246
247
  let(:shipment) { create(:shipment, order: order) }
247
248
  let(:shipping_method) { create(:shipping_method) }
248
- let(:shipping_rate) { [
249
+ let(:shipping_rate) {
250
+ [
249
251
  Spree::ShippingRate.create!(shipping_method: shipping_method, cost: 10.00, shipment: shipment)
250
- ] }
252
+ ]
253
+ }
251
254
 
252
255
  before do
253
256
  order.state = 'address'
@@ -301,7 +304,7 @@ describe Spree::Order, :type => :model do
301
304
 
302
305
  context "with payment required" do
303
306
  before do
304
- allow(order).to receive_messages :payment_required? => true
307
+ allow(order).to receive_messages payment_required?: true
305
308
  end
306
309
 
307
310
  it "transitions to payment" do
@@ -314,7 +317,7 @@ describe Spree::Order, :type => :model do
314
317
 
315
318
  context "without payment required" do
316
319
  before do
317
- allow(order).to receive_messages :payment_required? => false
320
+ allow(order).to receive_messages payment_required?: false
318
321
  end
319
322
 
320
323
  it "transitions to complete" do
@@ -420,7 +423,7 @@ describe Spree::Order, :type => :model do
420
423
  # Regression test for https://github.com/spree/spree/issues/2028
421
424
  context "when payment is not required" do
422
425
  before do
423
- allow(order).to receive_messages :payment_required? => false
426
+ allow(order).to receive_messages payment_required?: false
424
427
  end
425
428
 
426
429
  it "does not call process payments" do
@@ -463,7 +466,7 @@ describe Spree::Order, :type => :model do
463
466
  order.line_items << FactoryGirl.create(:line_item)
464
467
  order.line_items.first.variant.stock_items.each do |si|
465
468
  si.set_count_on_hand(0)
466
- si.update_attributes(:backorderable => false)
469
+ si.update_attributes(backorderable: false)
467
470
  end
468
471
 
469
472
  Spree::OrderUpdater.new(order).update
@@ -536,7 +539,7 @@ describe Spree::Order, :type => :model do
536
539
 
537
540
  context 'when the exchange is not for an unreturned item' do
538
541
  it 'does not allow the order to completed' do
539
- expect { order.complete! }.to raise_error Spree::Order::InsufficientStock
542
+ expect { order.complete! }.to raise_error Spree::Order::InsufficientStock
540
543
  expect(order.payments.first.state).to eq('checkout')
541
544
  end
542
545
  end
@@ -618,7 +621,7 @@ describe Spree::Order, :type => :model do
618
621
  let(:order) { create(:order_with_line_items) }
619
622
 
620
623
  it 'can complete the order' do
621
- payment = create(:payment, state: 'completed', order: order, amount: order.total)
624
+ create(:payment, state: 'completed', order: order, amount: order.total)
622
625
  order.update!
623
626
  expect(order.complete).to eq(true)
624
627
  end
@@ -637,7 +640,7 @@ describe Spree::Order, :type => :model do
637
640
 
638
641
  skip "should only call default transitions once when checkout_flow is redefined" do
639
642
  order = SubclassedOrder.new
640
- allow(order).to receive_messages :payment_required? => true
643
+ allow(order).to receive_messages payment_required?: true
641
644
  expect(order).to receive(:process_payments!).once
642
645
  order.state = "payment"
643
646
  order.next!
@@ -662,7 +665,7 @@ describe Spree::Order, :type => :model do
662
665
  end
663
666
 
664
667
  it "should not keep old event transitions when checkout_flow is redefined" do
665
- expect(Spree::Order.next_event_transitions).to eq([{:cart=>:payment}, {:payment=>:complete}])
668
+ expect(Spree::Order.next_event_transitions).to eq([{ cart: :payment }, { payment: :complete }])
666
669
  end
667
670
 
668
671
  it "should not keep old events when checkout_flow is redefined" do
@@ -692,10 +695,15 @@ describe Spree::Order, :type => :model do
692
695
  Spree::Order.checkout_flow(&@old_checkout_flow)
693
696
  end
694
697
 
698
+ it "does not attempt to check shipping rates" do
699
+ order.email = 'user@example.com'
700
+ expect(order).not_to receive(:ensure_available_shipping_rates)
701
+ order.next!
702
+ assert_state_changed(order, 'cart', 'complete')
703
+ end
704
+
695
705
  it "does not attempt to process payments" do
696
706
  order.email = 'user@example.com'
697
- order.store = FactoryGirl.build(:store)
698
- allow(order).to receive(:ensure_available_shipping_rates).and_return(true)
699
707
  allow(order).to receive(:ensure_promotions_eligible).and_return(true)
700
708
  allow(order).to receive(:ensure_line_item_variants_are_not_deleted).and_return(true)
701
709
  allow(order).to receive_message_chain(:line_items, :present?).and_return(true)
@@ -705,7 +713,6 @@ describe Spree::Order, :type => :model do
705
713
  order.next!
706
714
  assert_state_changed(order, 'cart', 'complete')
707
715
  end
708
-
709
716
  end
710
717
 
711
718
  context "insert checkout step" do
@@ -724,7 +731,7 @@ describe Spree::Order, :type => :model do
724
731
  end
725
732
 
726
733
  it "should maintain removed transitions" do
727
- transition = Spree::Order.find_transition(:from => :delivery, :to => :confirm)
734
+ transition = Spree::Order.find_transition(from: :delivery, to: :confirm)
728
735
  expect(transition).to be_nil
729
736
  end
730
737
 
@@ -771,7 +778,7 @@ describe Spree::Order, :type => :model do
771
778
  end
772
779
 
773
780
  it "should maintain removed transitions" do
774
- transition = Spree::Order.find_transition(:from => :delivery, :to => :confirm)
781
+ transition = Spree::Order.find_transition(from: :delivery, to: :confirm)
775
782
  expect(transition).to be_nil
776
783
  end
777
784
 
@@ -793,7 +800,7 @@ describe Spree::Order, :type => :model do
793
800
  it 'calls update_atributes without order params' do
794
801
  expect {
795
802
  order.update_from_params( params, permitted_params)
796
- }.not_to change{order.attributes}
803
+ }.not_to change{ order.attributes }
797
804
  end
798
805
 
799
806
  it 'runs the callbacks' do
@@ -815,12 +822,12 @@ describe Spree::Order, :type => :model do
815
822
  payments_attributes: [
816
823
  {
817
824
  payment_method_id: 1,
818
- source_attributes: attributes_for(:credit_card),
819
- },
825
+ source_attributes: attributes_for(:credit_card)
826
+ }
820
827
  ],
821
- existing_card: credit_card.id,
828
+ existing_card: credit_card.id
822
829
  },
823
- cvc_confirm: "737",
830
+ cvc_confirm: "737"
824
831
  )
825
832
  end
826
833
 
@@ -857,8 +864,8 @@ describe Spree::Order, :type => :model do
857
864
  end
858
865
 
859
866
  context 'has params' do
860
- let(:permitted_params) { [ :good_param ] }
861
- let(:params) { ActionController::Parameters.new(order: { bad_param: 'okay' } ) }
867
+ let(:permitted_params) { [:good_param] }
868
+ let(:params) { ActionController::Parameters.new(order: { bad_param: 'okay' } ) }
862
869
 
863
870
  it 'does not let through unpermitted attributes' do
864
871
  expect(order).to receive(:assign_attributes).with({})
@@ -866,10 +873,10 @@ describe Spree::Order, :type => :model do
866
873
  end
867
874
 
868
875
  context 'has allowed params' do
869
- let(:params) { ActionController::Parameters.new(order: { good_param: 'okay' } ) }
876
+ let(:params) { ActionController::Parameters.new(order: { good_param: 'okay' } ) }
870
877
 
871
878
  it 'accepts permitted attributes' do
872
- expect(order).to receive(:assign_attributes).with({"good_param" => 'okay'})
879
+ expect(order).to receive(:assign_attributes).with({ "good_param" => 'okay' })
873
880
  order.update_from_params(params, permitted_params)
874
881
  end
875
882
  end
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Order, :type => :model do
3
+ describe Spree::Order, type: :model do
4
4
  let(:order) { stub_model("Spree::Order") }
5
5
 
6
6
  context "#finalize!" do
7
+ let!(:store) { create(:store) }
7
8
  let(:order) { Spree::Order.create(email: 'test@example.com', store: store) }
8
- let(:store) { FactoryGirl.build(:store) }
9
9
 
10
10
  before do
11
11
  order.update_column :state, 'complete'
@@ -35,15 +35,14 @@ describe Spree::Order, :type => :model do
35
35
  Spree::Shipment.create(order: order)
36
36
  order.shipments.reload
37
37
 
38
- allow(order).to receive_messages(:paid? => true, :complete? => true)
38
+ allow(order).to receive_messages(paid?: true, complete?: true)
39
39
  order.finalize!
40
40
  order.reload # reload so we're sure the changes are persisted
41
41
  expect(order.shipment_state).to eq('ready')
42
42
  end
43
43
 
44
- after { Spree::Config.set :track_inventory_levels => true }
45
44
  it "should not sell inventory units if track_inventory_levels is false" do
46
- Spree::Config.set :track_inventory_levels => false
45
+ Spree::Config.set track_inventory_levels: false
47
46
  expect(Spree::InventoryUnit).not_to receive(:sell_units)
48
47
  order.finalize!
49
48
  end
@@ -62,7 +61,7 @@ describe Spree::Order, :type => :model do
62
61
  end
63
62
 
64
63
  it "should not send duplicate confirmation emails" do
65
- allow(order).to receive_messages(:confirmation_delivered? => true)
64
+ allow(order).to receive_messages(confirmation_delivered?: true)
66
65
  expect(Spree::OrderMailer).not_to receive(:confirm_email)
67
66
  order.finalize!
68
67
  end
@@ -81,12 +80,12 @@ describe Spree::Order, :type => :model do
81
80
 
82
81
  context "order is considered risky" do
83
82
  before do
84
- allow(order).to receive_messages :is_risky? => true
83
+ allow(order).to receive_messages is_risky?: true
85
84
  end
86
85
 
87
86
  context "and order is approved" do
88
87
  before do
89
- allow(order).to receive_messages :approved? => true
88
+ allow(order).to receive_messages approved?: true
90
89
  end
91
90
 
92
91
  it "should leave order in complete state" do
@@ -98,7 +97,7 @@ describe Spree::Order, :type => :model do
98
97
 
99
98
  context "order is not considered risky" do
100
99
  before do
101
- allow(order).to receive_messages :is_risky? => false
100
+ allow(order).to receive_messages is_risky?: false
102
101
  end
103
102
 
104
103
  it "should set completed_at" do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Spree::Order, :type => :model do
4
+ describe Spree::Order, type: :model do
5
5
  let(:order) { stub_model(Spree::Order) }
6
6
  let(:updater) { Spree::OrderUpdater.new(order) }
7
7
 
@@ -11,12 +11,12 @@ module Spree
11
11
  Spree::Config[:auto_capture] = true
12
12
 
13
13
  allow(order).to receive_message_chain(:line_items, :empty?).and_return(false)
14
- allow(order).to receive_messages :total => 100
14
+ allow(order).to receive_messages total: 100
15
15
  end
16
16
 
17
17
  it 'processes all checkout payments' do
18
- payment_1 = create(:payment, :amount => 50)
19
- payment_2 = create(:payment, :amount => 50)
18
+ payment_1 = create(:payment, amount: 50)
19
+ payment_2 = create(:payment, amount: 50)
20
20
  allow(order).to receive(:unprocessed_payments).and_return([payment_1, payment_2])
21
21
 
22
22
  order.process_payments!
@@ -28,9 +28,9 @@ module Spree
28
28
  end
29
29
 
30
30
  it 'does not go over total for order' do
31
- payment_1 = create(:payment, :amount => 50)
32
- payment_2 = create(:payment, :amount => 50)
33
- payment_3 = create(:payment, :amount => 50)
31
+ payment_1 = create(:payment, amount: 50)
32
+ payment_2 = create(:payment, amount: 50)
33
+ payment_3 = create(:payment, amount: 50)
34
34
  allow(order).to receive(:unprocessed_payments).and_return([payment_1, payment_2, payment_3])
35
35
 
36
36
  order.process_payments!
@@ -43,8 +43,8 @@ module Spree
43
43
  end
44
44
 
45
45
  it "does not use failed payments" do
46
- payment_1 = create(:payment, :amount => 50)
47
- payment_2 = create(:payment, :amount => 50, :state => 'failed')
46
+ payment_1 = create(:payment, amount: 50)
47
+ payment_2 = create(:payment, amount: 50, state: 'failed')
48
48
  allow(order).to receive(:pending_payments).and_return([payment_1])
49
49
 
50
50
  expect(payment_2).not_to receive(:process!)
@@ -72,12 +72,12 @@ module Spree
72
72
  let(:payment_method){ create(:credit_card_payment_method) }
73
73
  let(:payment_attributes) do
74
74
  {
75
- :payment_method_id => payment_method.id,
76
- :source_attributes => {
77
- :name => "Ryan Bigg",
78
- :number => "41111111111111111111",
79
- :expiry => "01 / 15",
80
- :verification_value => "123"
75
+ payment_method_id: payment_method.id,
76
+ source_attributes: {
77
+ name: "Ryan Bigg",
78
+ number: "41111111111111111111",
79
+ expiry: "01 / 15",
80
+ verification_value: "123"
81
81
  }
82
82
  }
83
83
  end
@@ -129,12 +129,12 @@ module Spree
129
129
  before { expect(payment).to receive(:process!).and_raise(Spree::Core::GatewayError) }
130
130
 
131
131
  it "should return true when configured to allow checkout on gateway failures" do
132
- Spree::Config.set :allow_checkout_on_gateway_error => true
132
+ Spree::Config.set allow_checkout_on_gateway_error: true
133
133
  expect(order.process_payments!).to be true
134
134
  end
135
135
 
136
136
  it "should return false when not configured to allow checkout on gateway failures" do
137
- Spree::Config.set :allow_checkout_on_gateway_error => false
137
+ Spree::Config.set allow_checkout_on_gateway_error: false
138
138
  expect(order.process_payments!).to be false
139
139
  end
140
140
  end
@@ -142,7 +142,7 @@ module Spree
142
142
 
143
143
  context "#authorize_payments!" do
144
144
  let(:payment) { stub_model(Spree::Payment) }
145
- before { allow(order).to receive_messages :unprocessed_payments => [payment], :total => 10 }
145
+ before { allow(order).to receive_messages unprocessed_payments: [payment], total: 10 }
146
146
  subject { order.authorize_payments! }
147
147
 
148
148
  it "processes payments with attempt_authorization!" do
@@ -155,7 +155,7 @@ module Spree
155
155
 
156
156
  context "#capture_payments!" do
157
157
  let(:payment) { stub_model(Spree::Payment) }
158
- before { allow(order).to receive_messages :unprocessed_payments => [payment], :total => 10 }
158
+ before { allow(order).to receive_messages unprocessed_payments: [payment], total: 10 }
159
159
  subject { order.capture_payments! }
160
160
 
161
161
  it "processes payments with attempt_authorization!" do
@@ -198,7 +198,7 @@ module Spree
198
198
  before { order.update_attributes(state: 'canceled') }
199
199
 
200
200
  it "it should be a negative amount incorporating reimbursements" do
201
- expect(order.outstanding_balance).to eq -10
201
+ expect(order.outstanding_balance).to eq(-10)
202
202
  end
203
203
  end
204
204
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Order, :type => :model do
3
+ describe Spree::Order, type: :model do
4
4
  let(:order) { stub_model('Spree::Order') }
5
5
 
6
6
  describe ".is_risky?" do