solidus_core 1.1.4 → 1.2.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 (296) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/logo/solidus_logo.png +0 -0
  3. data/app/helpers/spree/base_helper.rb +2 -3
  4. data/app/models/concerns/spree/adjustment_source.rb +1 -1
  5. data/app/models/concerns/spree/default_price.rb +3 -1
  6. data/app/models/concerns/spree/named_type.rb +1 -1
  7. data/app/models/concerns/spree/user_methods.rb +10 -0
  8. data/app/models/spree/adjustment.rb +1 -1
  9. data/app/models/spree/adjustment_reason.rb +2 -4
  10. data/app/models/spree/app_configuration.rb +36 -0
  11. data/app/models/spree/base.rb +10 -1
  12. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  13. data/app/models/spree/classification.rb +1 -1
  14. data/app/models/spree/country.rb +3 -3
  15. data/app/models/spree/credit_card.rb +2 -2
  16. data/app/models/spree/customer_return.rb +3 -4
  17. data/app/models/spree/inventory_unit.rb +13 -24
  18. data/app/models/spree/item_adjustments.rb +5 -5
  19. data/app/models/spree/line_item.rb +6 -15
  20. data/app/models/spree/log_entry.rb +1 -1
  21. data/app/models/spree/option_type.rb +4 -2
  22. data/app/models/spree/option_type_prototype.rb +6 -0
  23. data/app/models/spree/option_value.rb +1 -1
  24. data/app/models/spree/order.rb +18 -63
  25. data/app/models/spree/order/checkout.rb +4 -2
  26. data/app/models/spree/order_cancellations.rb +52 -1
  27. data/app/models/spree/order_contents.rb +1 -1
  28. data/app/models/spree/order_merger.rb +143 -0
  29. data/app/models/spree/order_shipping.rb +3 -3
  30. data/app/models/spree/order_update_attributes.rb +42 -0
  31. data/app/models/spree/order_updater.rb +1 -1
  32. data/app/models/spree/payment.rb +16 -10
  33. data/app/models/spree/payment_create.rb +68 -0
  34. data/app/models/spree/payment_method.rb +0 -1
  35. data/app/models/spree/preference.rb +1 -1
  36. data/app/models/spree/price.rb +1 -8
  37. data/app/models/spree/product.rb +9 -44
  38. data/app/models/spree/product/scopes.rb +9 -7
  39. data/app/models/spree/promotion/rules/nth_order.rb +1 -1
  40. data/app/models/spree/promotion/rules/taxon.rb +2 -1
  41. data/app/models/spree/promotion_chooser.rb +1 -0
  42. data/app/models/spree/promotion_code.rb +1 -1
  43. data/app/models/spree/promotion_rule_taxon.rb +6 -0
  44. data/app/models/spree/property.rb +2 -1
  45. data/app/models/spree/property_prototype.rb +6 -0
  46. data/app/models/spree/prototype.rb +6 -2
  47. data/app/models/spree/reimbursement.rb +10 -0
  48. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
  49. data/app/models/spree/return_reason.rb +1 -7
  50. data/app/models/spree/role_user.rb +3 -5
  51. data/app/models/spree/shipment.rb +6 -11
  52. data/app/models/spree/shipping_method.rb +1 -7
  53. data/app/models/spree/shipping_rate.rb +3 -14
  54. data/app/models/spree/stock/coordinator.rb +48 -4
  55. data/app/models/spree/stock/estimator.rb +3 -6
  56. data/app/models/spree/stock/packer.rb +18 -2
  57. data/app/models/spree/stock/shipping_rate_selector.rb +16 -0
  58. data/app/models/spree/stock/shipping_rate_sorter.rb +16 -0
  59. data/app/models/spree/stock_item.rb +19 -15
  60. data/app/models/spree/stock_location.rb +2 -12
  61. data/app/models/spree/stock_transfer.rb +3 -3
  62. data/app/models/spree/store_credit.rb +2 -2
  63. data/app/models/spree/tax_category.rb +3 -2
  64. data/app/models/spree/tax_rate.rb +7 -14
  65. data/app/models/spree/taxon.rb +4 -1
  66. data/app/models/spree/taxonomy.rb +1 -1
  67. data/app/models/spree/transfer_item.rb +2 -2
  68. data/app/models/spree/unit_cancel.rb +2 -0
  69. data/app/models/spree/variant.rb +9 -14
  70. data/app/models/spree/zone.rb +6 -0
  71. data/app/models/spree/zone_member.rb +1 -4
  72. data/app/views/spree/order_mailer/cancel_email.text.erb +0 -0
  73. data/config/locales/en.yml +7 -5
  74. data/db/default/spree/countries.rb +1 -1
  75. data/db/default/spree/zones.rb +5 -11
  76. data/db/migrate/20130213191427_create_default_stock.rb +1 -1
  77. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +1 -1
  78. data/db/migrate/20140309033438_create_store_from_preferences.rb +5 -2
  79. data/db/migrate/20141009204607_add_store_id_to_orders.rb +6 -2
  80. data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +5 -0
  81. data/db/migrate/20141217215630_update_product_slug_index.rb +6 -0
  82. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +2 -2
  83. data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +10 -0
  84. data/db/migrate/20151117063249_convert_habtm_to_hmt_for_properties_prototypes.rb +17 -0
  85. data/db/migrate/20151124062500_convert_habtm_to_hmt_for_option_type_prototypes.rb +17 -0
  86. data/db/migrate/20151126063028_convert_habtm_to_hmt_for_taxons_promotion_rules.rb +15 -0
  87. data/db/migrate/20151219020209_add_stock_item_unique_index.rb +9 -0
  88. data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
  89. data/lib/generators/spree/dummy/templates/rails/database.yml +1 -1
  90. data/lib/generators/spree/install/templates/config/initializers/spree.rb +25 -1
  91. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +3 -0
  92. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +3 -0
  93. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +3 -0
  94. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +3 -0
  95. data/lib/spree/core/controller_helpers/common.rb +1 -1
  96. data/lib/spree/core/controller_helpers/order.rb +1 -1
  97. data/lib/spree/core/controller_helpers/payment_parameters.rb +104 -5
  98. data/lib/spree/core/engine.rb +3 -2
  99. data/lib/spree/core/stock_configuration.rb +11 -0
  100. data/lib/spree/core/unreturned_item_charger.rb +4 -4
  101. data/lib/spree/core/version.rb +9 -1
  102. data/lib/spree/permission_sets/restricted_stock_transfer_management.rb +15 -24
  103. data/lib/spree/permitted_attributes.rb +3 -1
  104. data/lib/spree/testing_support/capybara_ext.rb +14 -40
  105. data/lib/spree/testing_support/factories.rb +0 -15
  106. data/lib/spree/testing_support/factories/address_factory.rb +3 -0
  107. data/lib/spree/testing_support/factories/adjustment_factory.rb +9 -1
  108. data/lib/spree/testing_support/factories/carton_factory.rb +4 -1
  109. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -0
  110. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +5 -0
  111. data/lib/spree/testing_support/factories/line_item_factory.rb +3 -0
  112. data/lib/spree/testing_support/factories/option_type_factory.rb +6 -0
  113. data/lib/spree/testing_support/factories/{options_factory.rb → option_value_factory.rb} +0 -5
  114. data/lib/spree/testing_support/factories/order_factory.rb +13 -3
  115. data/lib/spree/testing_support/factories/order_promotion_factory.rb +3 -0
  116. data/lib/spree/testing_support/factories/payment_factory.rb +13 -5
  117. data/lib/spree/testing_support/factories/price_factory.rb +2 -0
  118. data/lib/spree/testing_support/factories/product_factory.rb +7 -1
  119. data/lib/spree/testing_support/factories/product_option_type_factory.rb +3 -0
  120. data/lib/spree/testing_support/factories/product_property_factory.rb +3 -0
  121. data/lib/spree/testing_support/factories/promotion_code_factory.rb +3 -0
  122. data/lib/spree/testing_support/factories/promotion_factory.rb +3 -0
  123. data/lib/spree/testing_support/factories/prototype_factory.rb +2 -0
  124. data/lib/spree/testing_support/factories/refund_factory.rb +10 -5
  125. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  126. data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -0
  127. data/lib/spree/testing_support/factories/return_authorization_factory.rb +4 -4
  128. data/lib/spree/testing_support/factories/return_item_factory.rb +4 -0
  129. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  130. data/lib/spree/testing_support/factories/shipment_factory.rb +6 -1
  131. data/lib/spree/testing_support/factories/shipping_method_factory.rb +22 -10
  132. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +9 -0
  133. data/lib/spree/testing_support/factories/state_factory.rb +2 -0
  134. data/lib/spree/testing_support/factories/stock_item_factory.rb +4 -1
  135. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -0
  136. data/lib/spree/testing_support/factories/stock_movement_factory.rb +2 -0
  137. data/lib/spree/testing_support/factories/{stock_factory.rb → stock_package_factory.rb} +5 -10
  138. data/lib/spree/testing_support/factories/stock_packer_factory.rb +13 -0
  139. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +2 -2
  140. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +4 -1
  141. data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -6
  142. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -0
  143. data/lib/spree/testing_support/factories/tax_rate_factory.rb +4 -0
  144. data/lib/spree/testing_support/factories/taxon_factory.rb +2 -0
  145. data/lib/spree/testing_support/factories/user_factory.rb +6 -2
  146. data/lib/spree/testing_support/factories/variant_factory.rb +5 -0
  147. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +3 -0
  148. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +4 -0
  149. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +3 -0
  150. data/lib/spree/testing_support/factories/zone_factory.rb +6 -0
  151. data/lib/spree/testing_support/sequences.rb +9 -0
  152. data/lib/tasks/exchanges.rake +4 -3
  153. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +2 -2
  154. data/solidus_core.gemspec +4 -5
  155. data/spec/helpers/base_helper_spec.rb +6 -6
  156. data/spec/helpers/order_helper_spec.rb +1 -1
  157. data/spec/helpers/products_helper_spec.rb +2 -2
  158. data/spec/helpers/taxons_helper_spec.rb +1 -1
  159. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +107 -7
  160. data/spec/lib/spree/core/importer/order_spec.rb +1 -1
  161. data/spec/lib/spree/core/stock_configuration_spec.rb +16 -0
  162. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +24 -0
  163. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +18 -0
  164. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +12 -0
  165. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +42 -0
  166. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +12 -0
  167. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +12 -0
  168. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +12 -0
  169. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +28 -0
  170. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +12 -0
  171. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +12 -0
  172. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +12 -0
  173. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +12 -0
  174. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +12 -0
  175. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +49 -0
  176. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +12 -0
  177. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +24 -0
  178. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +30 -0
  179. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +12 -0
  180. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +30 -0
  181. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +12 -0
  182. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +12 -0
  183. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +12 -0
  184. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +12 -0
  185. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +30 -0
  186. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +12 -0
  187. data/spec/lib/spree/core/testing_support/factories/prototype_factory_spec.rb +12 -0
  188. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +12 -0
  189. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +12 -0
  190. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +12 -0
  191. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +12 -0
  192. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +12 -0
  193. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +18 -0
  194. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +12 -0
  195. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +18 -0
  196. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +12 -0
  197. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +12 -0
  198. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +28 -0
  199. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +12 -0
  200. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +12 -0
  201. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +12 -0
  202. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +24 -0
  203. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +12 -0
  204. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +26 -0
  205. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +16 -0
  206. data/spec/lib/spree/core/testing_support/factories/stock_transfer_factory_spec.rb +12 -0
  207. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +12 -0
  208. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +42 -0
  209. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +12 -0
  210. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +18 -0
  211. data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +12 -0
  212. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +12 -0
  213. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +12 -0
  214. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +12 -0
  215. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +12 -0
  216. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +12 -0
  217. data/spec/lib/spree/core/testing_support/factories/tracker_factory_spec.rb +12 -0
  218. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +22 -0
  219. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +36 -0
  220. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +12 -0
  221. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +12 -0
  222. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +12 -0
  223. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +18 -0
  224. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +1 -1
  225. data/spec/lib/spree/core/version_spec.rb +17 -0
  226. data/spec/lib/spree/money_spec.rb +1 -1
  227. data/spec/mailers/carton_mailer_spec.rb +1 -1
  228. data/spec/mailers/order_mailer_spec.rb +1 -1
  229. data/spec/mailers/reimbursement_mailer_spec.rb +1 -3
  230. data/spec/mailers/test_mailer_spec.rb +1 -3
  231. data/spec/models/spree/address_spec.rb +4 -4
  232. data/spec/models/spree/adjustment_reason_spec.rb +1 -3
  233. data/spec/models/spree/app_configuration_spec.rb +4 -0
  234. data/spec/models/spree/calculator/price_sack_spec.rb +3 -3
  235. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +3 -3
  236. data/spec/models/spree/calculator/tiered_percent_spec.rb +86 -10
  237. data/spec/models/spree/carton_spec.rb +3 -1
  238. data/spec/models/spree/classification_spec.rb +3 -3
  239. data/spec/models/spree/credit_card_spec.rb +16 -16
  240. data/spec/models/spree/customer_return_spec.rb +1 -1
  241. data/spec/models/spree/gateway/bogus_simple.rb +1 -1
  242. data/spec/models/spree/inventory_unit_spec.rb +3 -3
  243. data/spec/models/spree/item_adjustments_spec.rb +1 -1
  244. data/spec/models/spree/line_item_spec.rb +2 -2
  245. data/spec/models/spree/option_type_spec.rb +2 -2
  246. data/spec/models/spree/option_value_spec.rb +2 -2
  247. data/spec/models/spree/order/callbacks_spec.rb +1 -1
  248. data/spec/models/spree/order/checkout_spec.rb +16 -11
  249. data/spec/models/spree/order/payment_spec.rb +24 -22
  250. data/spec/models/spree/order/state_machine_spec.rb +1 -1
  251. data/spec/models/spree/order/validations_spec.rb +1 -1
  252. data/spec/models/spree/order_cancellations_spec.rb +63 -0
  253. data/spec/models/spree/order_contents_spec.rb +1 -1
  254. data/spec/models/spree/order_merger_spec.rb +133 -0
  255. data/spec/models/spree/order_spec.rb +39 -159
  256. data/spec/models/spree/order_update_attributes_spec.rb +82 -0
  257. data/spec/models/spree/order_updater_spec.rb +6 -4
  258. data/spec/models/spree/payment_create_spec.rb +131 -0
  259. data/spec/models/spree/payment_spec.rb +130 -48
  260. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +91 -33
  261. data/spec/models/spree/product_filter_spec.rb +3 -3
  262. data/spec/models/spree/product_spec.rb +80 -26
  263. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +1 -1
  264. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +2 -2
  265. data/spec/models/spree/promotion/rules/nth_order_spec.rb +1 -1
  266. data/spec/models/spree/promotion/rules/user_spec.rb +2 -2
  267. data/spec/models/spree/promotion_handler/coupon_spec.rb +2 -2
  268. data/spec/models/spree/promotion_spec.rb +18 -18
  269. data/spec/models/spree/reimbursement_spec.rb +22 -0
  270. data/spec/models/spree/return_item_spec.rb +2 -2
  271. data/spec/models/spree/shipment_spec.rb +28 -12
  272. data/spec/models/spree/shipping_method_spec.rb +2 -2
  273. data/spec/models/spree/shipping_rate_spec.rb +3 -3
  274. data/spec/models/spree/stock/coordinator_spec.rb +5 -0
  275. data/spec/models/spree/stock/estimator_spec.rb +35 -1
  276. data/spec/models/spree/stock/package_spec.rb +1 -1
  277. data/spec/models/spree/stock/packer_spec.rb +2 -3
  278. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +16 -0
  279. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +16 -0
  280. data/spec/models/spree/stock_item_spec.rb +5 -7
  281. data/spec/models/spree/stock_location_spec.rb +5 -9
  282. data/spec/models/spree/stock_transfer_spec.rb +33 -13
  283. data/spec/models/spree/store_credit_event_spec.rb +1 -1
  284. data/spec/models/spree/store_credit_spec.rb +1 -1
  285. data/spec/models/spree/tax_rate_spec.rb +381 -120
  286. data/spec/models/spree/taxon_spec.rb +3 -3
  287. data/spec/models/spree/transfer_item_spec.rb +4 -4
  288. data/spec/models/spree/unit_cancel_spec.rb +1 -1
  289. data/spec/models/spree/variant_spec.rb +3 -3
  290. data/spec/models/spree/zone_spec.rb +35 -1
  291. data/spec/support/concerns/working_factories.rb +9 -0
  292. data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
  293. data/vendor/assets/javascripts/jquery.payment.js +231 -80
  294. metadata +103 -27
  295. data/app/models/spree/order/currency_updater.rb +0 -40
  296. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
@@ -8,7 +8,7 @@ describe Spree::OptionType, :type => :model do
8
8
  product = product_option_type.product
9
9
  product.update_column(:updated_at, 1.day.ago)
10
10
  option_type.touch
11
- expect(product.reload.updated_at).to be_within(3.seconds).of(Time.now)
11
+ expect(product.reload.updated_at).to be_within(3.seconds).of(Time.current)
12
12
  end
13
13
  end
14
- end
14
+ end
@@ -12,7 +12,7 @@ describe Spree::OptionValue, :type => :model do
12
12
  it "should touch a variant" do
13
13
  Timecop.freeze do
14
14
  option_value.touch
15
- expect(variant.reload.updated_at).to be_within(1.second).of(Time.now)
15
+ expect(variant.reload.updated_at).to be_within(1.second).of(Time.current)
16
16
  end
17
17
  end
18
18
 
@@ -28,7 +28,7 @@ describe Spree::OptionValue, :type => :model do
28
28
  Timecop.freeze do
29
29
  option_value.name += "--1"
30
30
  option_value.save!
31
- expect(variant.reload.updated_at).to be_within(1.second).of(Time.now)
31
+ expect(variant.reload.updated_at).to be_within(1.second).of(Time.current)
32
32
  end
33
33
  end
34
34
  end
@@ -8,7 +8,7 @@ describe Spree::Order, :type => :model do
8
8
 
9
9
  context "validations" do
10
10
  context "email validation" do
11
- # Regression test for #1238
11
+ # Regression test for https://github.com/spree/spree/issues/1238
12
12
  it "o'brien@gmail.com is a valid email address" do
13
13
  order.state = 'address'
14
14
  order.email = "o'brien@gmail.com"
@@ -118,7 +118,7 @@ describe Spree::Order, :type => :model do
118
118
 
119
119
  it "doesn't raise an error if the default address is invalid" do
120
120
  order.user = mock_model(Spree::LegacyUser, ship_address: Spree::Address.new, bill_address: Spree::Address.new)
121
- expect { order.next! }.to_not raise_error
121
+ order.next!
122
122
  end
123
123
 
124
124
  context "with default addresses" do
@@ -417,7 +417,7 @@ describe Spree::Order, :type => :model do
417
417
  end
418
418
  end
419
419
 
420
- # Regression test for #2028
420
+ # Regression test for https://github.com/spree/spree/issues/2028
421
421
  context "when payment is not required" do
422
422
  before do
423
423
  allow(order).to receive_messages :payment_required? => false
@@ -675,7 +675,7 @@ describe Spree::Order, :type => :model do
675
675
  end
676
676
  end
677
677
 
678
- # Regression test for #3665
678
+ # Regression test for https://github.com/spree/spree/issues/3665
679
679
  context "with only a complete step" do
680
680
  let!(:line_item){ create :line_item, order: order }
681
681
 
@@ -782,12 +782,18 @@ describe Spree::Order, :type => :model do
782
782
  end
783
783
 
784
784
  describe 'update_from_params' do
785
+ let(:order) { create(:order) }
785
786
  let(:permitted_params) { {} }
786
787
  let(:params) { {} }
787
788
 
789
+ around do |example|
790
+ ActiveSupport::Deprecation.silence { example.run }
791
+ end
792
+
788
793
  it 'calls update_atributes without order params' do
789
- expect(order).to receive(:update_attributes).with({})
790
- order.update_from_params( params, permitted_params)
794
+ expect {
795
+ order.update_from_params( params, permitted_params)
796
+ }.not_to change{order.attributes}
791
797
  end
792
798
 
793
799
  it 'runs the callbacks' do
@@ -837,10 +843,8 @@ describe Spree::Order, :type => :model do
837
843
  it "sets request_env on payment" do
838
844
  request_env = { "USER_AGENT" => "Firefox" }
839
845
 
840
- expected_hash = { "payments_attributes" => [hash_including("request_env" => request_env)] }
841
- expect(order).to receive(:update_attributes).with expected_hash
842
-
843
846
  order.update_from_params(params, permitted_params, request_env)
847
+ expect(order.payments[0].request_env).to eq request_env
844
848
  end
845
849
 
846
850
  it "dont let users mess with others users cards" do
@@ -857,7 +861,7 @@ describe Spree::Order, :type => :model do
857
861
  let(:params) { ActionController::Parameters.new(order: { bad_param: 'okay' } ) }
858
862
 
859
863
  it 'does not let through unpermitted attributes' do
860
- expect(order).to receive(:update_attributes).with({})
864
+ expect(order).to receive(:assign_attributes).with({})
861
865
  order.update_from_params(params, permitted_params)
862
866
  end
863
867
 
@@ -865,7 +869,7 @@ describe Spree::Order, :type => :model do
865
869
  let(:params) { ActionController::Parameters.new(order: { good_param: 'okay' } ) }
866
870
 
867
871
  it 'accepts permitted attributes' do
868
- expect(order).to receive(:update_attributes).with({"good_param" => 'okay'})
872
+ expect(order).to receive(:assign_attributes).with({"good_param" => 'okay'})
869
873
  order.update_from_params(params, permitted_params)
870
874
  end
871
875
  end
@@ -875,7 +879,8 @@ describe Spree::Order, :type => :model do
875
879
  expect(order).to receive(:update_params_payment_source).and_return false
876
880
  end
877
881
  it 'does not let through unpermitted attributes' do
878
- expect(order).not_to receive(:update_attributes).with({})
882
+ expect(order).not_to receive(:assign_attributes)
883
+ expect(order).not_to receive(:save)
879
884
  order.update_from_params(params, permitted_params)
880
885
  end
881
886
  end
@@ -68,30 +68,32 @@ module Spree
68
68
  end
69
69
 
70
70
  context "ensure source attributes stick around" do
71
- # For the reason of this test, please see spree/spree_gateway#132
72
- it "does not have inverse_of defined" do
73
- expect(Spree::Order.reflections['payments'].options[:inverse_of]).to be_nil
74
- end
75
-
76
- it "keeps source attributes after updating" do
77
- persisted_order = Spree::Order.create
78
- credit_card_payment_method = create(:credit_card_payment_method)
79
- attributes = {
80
- :payments_attributes => [
81
- {
82
- :payment_method_id => credit_card_payment_method.id,
83
- :source_attributes => {
84
- :name => "Ryan Bigg",
85
- :number => "41111111111111111111",
86
- :expiry => "01 / 15",
87
- :verification_value => "123"
88
- }
89
- }
90
- ]
71
+ let(:order){ Spree::Order.create }
72
+ let(:payment_method){ create(:credit_card_payment_method) }
73
+ let(:payment_attributes) do
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"
81
+ }
91
82
  }
83
+ end
92
84
 
93
- persisted_order.update_attributes(attributes)
94
- expect(persisted_order.unprocessed_payments.last.source.number).to be_present
85
+ # For the reason of this test, please see spree/spree_gateway#132
86
+ it "keeps source attributes on assignment" do
87
+ ActiveSupport::Deprecation.silence do
88
+ order.update_attributes(payments_attributes: [payment_attributes])
89
+ end
90
+ expect(order.unprocessed_payments.last.source.number).to be_present
91
+ end
92
+
93
+ # For the reason of this test, please see spree/spree_gateway#132
94
+ it "keeps source attributes through OrderUpdateAttributes" do
95
+ OrderUpdateAttributes.new(order, payments_attributes: [payment_attributes]).apply
96
+ expect(order.unprocessed_payments.last.source.number).to be_present
95
97
  end
96
98
  end
97
99
 
@@ -198,7 +198,7 @@ describe Spree::Order, :type => :model do
198
198
  end
199
199
 
200
200
 
201
- # Another regression test for #729
201
+ # Another regression test for https://github.com/spree/spree/issues/729
202
202
  context "#resume" do
203
203
  before do
204
204
  allow(order).to receive_messages email: "user@spreecommerce.com"
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  module Spree
4
4
  describe Spree::Order, :type => :model do
5
5
  context "validations" do
6
- # Regression test for #2214
6
+ # Regression test for https://github.com/spree/spree/issues/2214
7
7
  it "does not return two error messages when email is blank" do
8
8
  order = Spree::Order.new
9
9
  allow(order).to receive_messages(:require_email => true)
@@ -1,6 +1,69 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Spree::OrderCancellations do
4
+ describe "#cancel_unit" do
5
+ subject { Spree::OrderCancellations.new(order).cancel_unit(inventory_unit) }
6
+ let(:order) { create(:shipped_order, line_items_count: 1) }
7
+ let(:inventory_unit) { order.inventory_units.first }
8
+
9
+ it "creates a UnitCancel record" do
10
+ expect { subject }.to change { Spree::UnitCancel.count }.by(1)
11
+ expect(subject.inventory_unit).to eq inventory_unit
12
+ end
13
+
14
+ it "cancels the inventory unit" do
15
+ expect { subject }.to change { inventory_unit.state }.to "canceled"
16
+ end
17
+
18
+ context "when a reason is specified" do
19
+ subject { order.cancellations.cancel_unit(inventory_unit, reason: "some reason") }
20
+
21
+ it "sets the reason on the UnitCancel" do
22
+ expect(subject.reason).to eq("some reason")
23
+ end
24
+ end
25
+
26
+ context "when a reason is not specified" do
27
+ it "sets a default reason on the UnitCancel" do
28
+ expect(subject.reason).to eq Spree::UnitCancel::DEFAULT_REASON
29
+ end
30
+ end
31
+
32
+ context "when a whodunnit is specified" do
33
+ subject { order.cancellations.cancel_unit(inventory_unit, whodunnit: "some automated system") }
34
+
35
+ it "sets the user on the UnitCancel" do
36
+ expect(subject.created_by).to eq("some automated system")
37
+ end
38
+ end
39
+
40
+ context "when a whodunnit is not specified" do
41
+ it "does not set created_by on the UnitCancel" do
42
+ expect(subject.created_by).to be_nil
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "#reimburse_units" do
48
+ subject { Spree::OrderCancellations.new(order).reimburse_units(inventory_units) }
49
+ let(:order) { create(:shipped_order, line_items_count: 2) }
50
+ let(:inventory_units) { order.inventory_units }
51
+ let!(:default_refund_reason) { Spree::RefundReason.find_or_create_by!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false) }
52
+
53
+ it "creates and performs a reimbursement" do
54
+ expect { subject }.to change { Spree::Reimbursement.count }.by(1)
55
+ expect(subject.refunds.size).to eq 1
56
+ end
57
+
58
+ it "creates return items for the inventory units and accepts them" do
59
+ expect { subject }.to change { Spree::ReturnItem.count }.by(inventory_units.count)
60
+
61
+ return_items = subject.return_items
62
+ expect(return_items.map(&:acceptance_status)).to all eq "accepted"
63
+ expect(return_items.map(&:inventory_unit)).to match_array(inventory_units)
64
+ end
65
+ end
66
+
4
67
  describe "#short_ship" do
5
68
  subject { Spree::OrderCancellations.new(order).short_ship([inventory_unit]) }
6
69
 
@@ -245,7 +245,7 @@ describe Spree::OrderContents, :type => :model do
245
245
  end
246
246
 
247
247
  context "completed order" do
248
- let(:order) { Spree::Order.create! state: 'complete', completed_at: Time.now }
248
+ let(:order) { Spree::Order.create! state: 'complete', completed_at: Time.current }
249
249
 
250
250
  before { order.shipments.create! stock_location_id: variant.stock_location_ids.first }
251
251
 
@@ -0,0 +1,133 @@
1
+ require 'spec_helper'
2
+
3
+ # Regression tests for https://github.com/spree/spree/issues/2179
4
+ module Spree
5
+ describe OrderMerger, type: :model do
6
+ let(:variant) { create(:variant) }
7
+ let(:order_1) { Spree::Order.create }
8
+ let(:order_2) { Spree::Order.create }
9
+ let(:user) { stub_model(Spree::LegacyUser, email: "spree@example.com") }
10
+ let(:subject) { Spree::OrderMerger.new(order_1) }
11
+
12
+ it "destroys the other order" do
13
+ subject.merge!(order_2)
14
+ expect { order_2.reload }.to raise_error(ActiveRecord::RecordNotFound)
15
+ end
16
+
17
+ it "persist the merge" do
18
+ expect(subject).to receive(:persist_merge)
19
+ subject.merge!(order_2)
20
+ end
21
+
22
+ context "user is provided" do
23
+ it "assigns user to new order" do
24
+ subject.merge!(order_2, user)
25
+ expect(order_1.user).to eq user
26
+ end
27
+ end
28
+
29
+ context "merging together two orders with line items for the same variant" do
30
+ before do
31
+ order_1.contents.add(variant, 1)
32
+ order_2.contents.add(variant, 1)
33
+ end
34
+
35
+ specify do
36
+ subject.merge!(order_2, user)
37
+ expect(order_1.line_items.count).to eq(1)
38
+
39
+ line_item = order_1.line_items.first
40
+ expect(line_item.quantity).to eq(2)
41
+ expect(line_item.variant_id).to eq(variant.id)
42
+ end
43
+ end
44
+
45
+ context "merging using extension-specific line_item_comparison_hooks" do
46
+ before do
47
+ Spree::Order.register_line_item_comparison_hook(:foos_match)
48
+ allow(Spree::Variant).to receive(:price_modifier_amount).and_return(0.00)
49
+ end
50
+
51
+ after do
52
+ # reset to avoid test pollution
53
+ Spree::Order.line_item_comparison_hooks = Set.new
54
+ end
55
+
56
+ context "2 equal line items" do
57
+ before do
58
+ @line_item_1 = order_1.contents.add(variant, 1, foos: {})
59
+ @line_item_2 = order_2.contents.add(variant, 1, foos: {})
60
+ end
61
+
62
+ specify do
63
+ expect(order_1).to receive(:foos_match).with(@line_item_1, kind_of(Hash)).and_return(true)
64
+ subject.merge!(order_2)
65
+ expect(order_1.line_items.count).to eq(1)
66
+
67
+ line_item = order_1.line_items.first
68
+ expect(line_item.quantity).to eq(2)
69
+ expect(line_item.variant_id).to eq(variant.id)
70
+ end
71
+ end
72
+
73
+ context "2 different line items" do
74
+ before do
75
+ allow(order_1).to receive(:foos_match).and_return(false)
76
+
77
+ order_1.contents.add(variant, 1, foos: {})
78
+ order_2.contents.add(variant, 1, foos: { bar: :zoo })
79
+ end
80
+
81
+ specify do
82
+ subject.merge!(order_2)
83
+ expect(order_1.line_items.count).to eq(2)
84
+
85
+ line_item = order_1.line_items.first
86
+ expect(line_item.quantity).to eq(1)
87
+ expect(line_item.variant_id).to eq(variant.id)
88
+
89
+ line_item = order_1.line_items.last
90
+ expect(line_item.quantity).to eq(1)
91
+ expect(line_item.variant_id).to eq(variant.id)
92
+ end
93
+ end
94
+ end
95
+
96
+ context "merging together two orders with different line items" do
97
+ let(:variant_2) { create(:variant) }
98
+
99
+ before do
100
+ order_1.contents.add(variant, 1)
101
+ order_2.contents.add(variant_2, 1)
102
+ end
103
+
104
+ specify do
105
+ subject.merge!(order_2)
106
+ line_items = order_1.line_items.reload
107
+ expect(line_items.count).to eq(2)
108
+
109
+ expect(order_1.item_count).to eq 2
110
+ expect(order_1.item_total).to eq line_items.map(&:amount).sum
111
+
112
+ # No guarantee on ordering of line items, so we do this:
113
+ expect(line_items.pluck(:quantity)).to match_array([1, 1])
114
+ expect(line_items.pluck(:variant_id)).to match_array([variant.id, variant_2.id])
115
+ end
116
+ end
117
+
118
+ context "merging together orders with invalid line items" do
119
+ let(:variant_2) { create(:variant) }
120
+
121
+ before do
122
+ order_1.contents.add(variant, 1)
123
+ order_2.contents.add(variant_2, 1)
124
+ end
125
+
126
+ it "should create errors with invalid line items" do
127
+ variant_2.really_destroy!
128
+ subject.merge!(order_2)
129
+ expect(order_1.errors.full_messages).not_to be_empty
130
+ end
131
+ end
132
+ end
133
+ end
@@ -197,111 +197,37 @@ describe Spree::Order, :type => :model do
197
197
  end
198
198
  end
199
199
 
200
- # Regression tests for #2179
201
- context "#merge!" do
202
- let(:variant) { create(:variant) }
203
- let(:order_1) { Spree::Order.create }
204
- let(:order_2) { Spree::Order.create }
200
+ describe '#merge!' do
201
+ let(:order1) { create(:order_with_line_items) }
202
+ let(:order2) { create(:order_with_line_items) }
205
203
 
206
- it "destroys the other order" do
207
- order_1.merge!(order_2)
208
- expect { order_2.reload }.to raise_error(ActiveRecord::RecordNotFound)
204
+ it 'merges the orders' do
205
+ order1.merge!(order2)
206
+ expect(order1.line_items.count).to eq(2)
207
+ expect(order2.destroyed?).to be_truthy
209
208
  end
210
209
 
211
- context "user is provided" do
212
- it "assigns user to new order" do
213
- order_1.merge!(order_2, user)
214
- expect(order_1.user).to eq user
215
- end
216
- end
217
-
218
- context "merging together two orders with line items for the same variant" do
219
- before do
220
- order_1.contents.add(variant, 1)
221
- order_2.contents.add(variant, 1)
222
- end
223
-
224
- specify do
225
- order_1.merge!(order_2)
226
- expect(order_1.line_items.count).to eq(1)
227
-
228
- line_item = order_1.line_items.first
229
- expect(line_item.quantity).to eq(2)
230
- expect(line_item.variant_id).to eq(variant.id)
231
- end
232
-
233
- end
234
-
235
- context "merging using extension-specific line_item_comparison_hooks" do
210
+ describe 'order_merger_class customization' do
236
211
  before do
237
- Spree::Order.register_line_item_comparison_hook(:foos_match)
238
- allow(Spree::Variant).to receive(:price_modifier_amount).and_return(0.00)
239
- end
240
-
241
- after do
242
- # reset to avoid test pollution
243
- Spree::Order.line_item_comparison_hooks = Set.new
244
- end
245
-
246
- context "2 equal line items" do
247
- before do
248
- @line_item_1 = order_1.contents.add(variant, 1, {foos: {}})
249
- @line_item_2 = order_2.contents.add(variant, 1, {foos: {}})
250
- end
251
-
252
- specify do
253
- expect(order_1).to receive(:foos_match).with(@line_item_1, kind_of(Hash)).and_return(true)
254
- order_1.merge!(order_2)
255
- expect(order_1.line_items.count).to eq(1)
256
-
257
- line_item = order_1.line_items.first
258
- expect(line_item.quantity).to eq(2)
259
- expect(line_item.variant_id).to eq(variant.id)
260
- end
261
- end
262
-
263
- context "2 different line items" do
264
- before do
265
- allow(order_1).to receive(:foos_match).and_return(false)
266
-
267
- order_1.contents.add(variant, 1, {foos: {}})
268
- order_2.contents.add(variant, 1, {foos: {bar: :zoo}})
269
- end
270
-
271
- specify do
272
- order_1.merge!(order_2)
273
- expect(order_1.line_items.count).to eq(2)
274
-
275
- line_item = order_1.line_items.first
276
- expect(line_item.quantity).to eq(1)
277
- expect(line_item.variant_id).to eq(variant.id)
278
-
279
- line_item = order_1.line_items.last
280
- expect(line_item.quantity).to eq(1)
281
- expect(line_item.variant_id).to eq(variant.id)
212
+ class TestOrderMerger
213
+ def initialize(order)
214
+ @order = order
215
+ end
216
+ def merge!(other_order, user = nil)
217
+ [@order, other_order, user]
218
+ end
282
219
  end
220
+ Spree::Config.order_merger_class = TestOrderMerger
283
221
  end
284
- end
285
222
 
286
- context "merging together two orders with different line items" do
287
- let(:variant_2) { create(:variant) }
288
-
289
- before do
290
- order_1.contents.add(variant, 1)
291
- order_2.contents.add(variant_2, 1)
223
+ after do
224
+ Spree::Config.order_merger_class = Spree::PromotionChooser
292
225
  end
293
226
 
294
- specify do
295
- order_1.merge!(order_2)
296
- line_items = order_1.line_items.reload
297
- expect(line_items.count).to eq(2)
227
+ let(:user) { build(:user) }
298
228
 
299
- expect(order_1.item_count).to eq 2
300
- expect(order_1.item_total).to eq line_items.map(&:amount).sum
301
-
302
- # No guarantee on ordering of line items, so we do this:
303
- expect(line_items.pluck(:quantity)).to match_array([1, 1])
304
- expect(line_items.pluck(:variant_id)).to match_array([variant.id, variant_2.id])
229
+ it 'uses the configured order merger' do
230
+ expect(order1.merge!(order2, user)).to eq([order1, order2, user])
305
231
  end
306
232
  end
307
233
  end
@@ -399,7 +325,7 @@ describe Spree::Order, :type => :model do
399
325
  context 'when the order is completed' do
400
326
  before do
401
327
  order.state = 'complete'
402
- order.completed_at = Time.now
328
+ order.completed_at = Time.current
403
329
  order.update_column(:shipment_total, 5)
404
330
  order.shipments.create!
405
331
  end
@@ -488,7 +414,7 @@ describe Spree::Order, :type => :model do
488
414
  end
489
415
  end
490
416
 
491
- # Regression tests for #4072
417
+ # Regression tests for https://github.com/spree/spree/issues/4072
492
418
  context "#state_changed" do
493
419
  let(:order) { FactoryGirl.create(:order) }
494
420
 
@@ -510,7 +436,7 @@ describe Spree::Order, :type => :model do
510
436
  end
511
437
  end
512
438
 
513
- # Regression test for #4199
439
+ # Regression test for https://github.com/spree/spree/issues/4199
514
440
  context "#available_payment_methods" do
515
441
  it "includes frontend payment methods" do
516
442
  payment_method = Spree::PaymentMethod.create!({
@@ -765,7 +691,7 @@ describe Spree::Order, :type => :model do
765
691
  order.completed_at = nil
766
692
  expect(order.completed?).to be false
767
693
 
768
- order.completed_at = Time.now
694
+ order.completed_at = Time.current
769
695
  expect(order.completed?).to be true
770
696
  end
771
697
  end
@@ -804,14 +730,14 @@ describe Spree::Order, :type => :model do
804
730
  it "should be false for completed order in the canceled state" do
805
731
  order.state = 'canceled'
806
732
  order.shipment_state = 'ready'
807
- order.completed_at = Time.now
733
+ order.completed_at = Time.current
808
734
  expect(order.can_cancel?).to be false
809
735
  end
810
736
 
811
737
  it "should be true for completed order with no shipment" do
812
738
  order.state = 'complete'
813
739
  order.shipment_state = nil
814
- order.completed_at = Time.now
740
+ order.completed_at = Time.current
815
741
  expect(order.can_cancel?).to be true
816
742
  end
817
743
  end
@@ -824,12 +750,12 @@ describe Spree::Order, :type => :model do
824
750
  end
825
751
  end
826
752
 
827
- # Regression test for #4923
753
+ # Regression test for https://github.com/spree/spree/issues/4923
828
754
  context "locking" do
829
755
  let(:order) { Spree::Order.create } # need a persisted in order to test locking
830
756
 
831
757
  it 'can lock' do
832
- expect { order.with_lock {} }.to_not raise_error
758
+ order.with_lock {}
833
759
  end
834
760
  end
835
761
 
@@ -846,11 +772,11 @@ describe Spree::Order, :type => :model do
846
772
 
847
773
  context "#refund_total" do
848
774
  let(:order) { create(:order_with_line_items) }
849
- let!(:payment) { create(:payment_with_refund, order: order) }
850
- let!(:payment2) { create(:payment_with_refund, order: order) }
775
+ let!(:payment) { create(:payment_with_refund, order: order, amount: 5, refund_amount: 3) }
776
+ let!(:payment2) { create(:payment_with_refund, order: order, amount: 5, refund_amount: 2.5) }
851
777
 
852
778
  it "sums the reimbursment refunds on the order" do
853
- expect(order.refund_total).to eq(10.0)
779
+ expect(order.refund_total).to eq(5.5)
854
780
  end
855
781
  end
856
782
 
@@ -894,7 +820,7 @@ describe Spree::Order, :type => :model do
894
820
 
895
821
  context 'a reimbursement related refund exists' do
896
822
  let(:order) { refund.payment.order }
897
- let(:refund) { create(:refund, reimbursement_id: 123, amount: 5)}
823
+ let(:refund) { create(:refund, reimbursement_id: 123, amount: 5, payment_amount: 14)}
898
824
 
899
825
  it { is_expected.to eq false }
900
826
  end
@@ -1027,6 +953,12 @@ describe Spree::Order, :type => :model do
1027
953
  let(:shipment) { Spree::Shipment.new(cost: 10) }
1028
954
  let(:payment) { Spree::Payment.new(amount: 10) }
1029
955
 
956
+ around do |example|
957
+ ActiveSupport::Deprecation.silence do
958
+ example.run
959
+ end
960
+ end
961
+
1030
962
  before do
1031
963
  allow(order).to receive(:line_items) { [line_item] }
1032
964
  allow(order).to receive(:shipments) { [shipment] }
@@ -1479,56 +1411,4 @@ describe Spree::Order, :type => :model do
1479
1411
  end
1480
1412
  end
1481
1413
  end
1482
-
1483
- describe "#validate_payments_attributes" do
1484
- let(:attributes) { [ActionController::Parameters.new(payment_method_id: payment_method.id)] }
1485
- subject do
1486
- order.validate_payments_attributes(attributes)
1487
- end
1488
-
1489
- context "with empty array" do
1490
- let(:attributes) { [] }
1491
- it "doesn't error" do
1492
- subject
1493
- end
1494
- end
1495
-
1496
- context "with no payment method specified" do
1497
- let(:attributes) { [ActionController::Parameters.new({})] }
1498
- it "doesn't error" do
1499
- subject
1500
- end
1501
- end
1502
-
1503
- context "with valid payment method" do
1504
- let(:payment_method) { create(:check_payment_method) }
1505
- it "doesn't error" do
1506
- subject
1507
- end
1508
- end
1509
-
1510
- context "with inactive payment method" do
1511
- let(:payment_method) { create(:check_payment_method, active: false) }
1512
-
1513
- it "raises RecordNotFound" do
1514
- expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
1515
- end
1516
- end
1517
-
1518
- context "with unavailable payment method" do
1519
- let(:payment_method) { create(:check_payment_method, display_on: "back_end") }
1520
-
1521
- it "raises RecordNotFound" do
1522
- expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
1523
- end
1524
- end
1525
-
1526
- context "with soft-deleted payment method" do
1527
- let(:payment_method) { create(:check_payment_method, deleted_at: Time.current) }
1528
-
1529
- it "raises RecordNotFound" do
1530
- expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
1531
- end
1532
- end
1533
- end
1534
1414
  end