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
@@ -97,7 +97,7 @@ describe Spree::Money do
97
97
  end
98
98
  end
99
99
 
100
- # Regression test for #2634
100
+ # Regression test for https://github.com/spree/spree/issues/2634
101
101
  it "formats as plain by default" do
102
102
  money = Spree::Money.new(10, symbol_position: :after)
103
103
  expect(money.to_s).to eq("10.00 €")
@@ -8,7 +8,7 @@ describe Spree::CartonMailer do
8
8
  let(:carton) { create(:carton) }
9
9
  let(:order) { carton.orders.first }
10
10
 
11
- # Regression test for #2196
11
+ # Regression test for https://github.com/spree/spree/issues/2196
12
12
  it "doesn't include out of stock in the email body" do
13
13
  shipment_email = Spree::CartonMailer.shipped_email(order: order, carton: carton)
14
14
  expect(shipment_email.body).not_to include(%Q{Out of Stock})
@@ -74,7 +74,7 @@ describe Spree::OrderMailer, :type => :mailer do
74
74
  end
75
75
 
76
76
  context "displays unit costs from line item" do
77
- # Regression test for #2772
77
+ # Regression test for https://github.com/spree/spree/issues/2772
78
78
 
79
79
  # Tests mailer view spree/order_mailer/confirm_email.text.erb
80
80
  specify do
@@ -10,9 +10,7 @@ describe Spree::ReimbursementMailer, :type => :mailer do
10
10
  it "accepts a reimbursement id as an alternative to a Reimbursement object" do
11
11
  expect(Spree::Reimbursement).to receive(:find).with(reimbursement.id).and_return(reimbursement)
12
12
 
13
- expect {
14
- Spree::ReimbursementMailer.reimbursement_email(reimbursement.id).body
15
- }.not_to raise_error
13
+ Spree::ReimbursementMailer.reimbursement_email(reimbursement.id).body
16
14
  end
17
15
 
18
16
  context "emails must be translatable" do
@@ -8,8 +8,6 @@ describe Spree::TestMailer, :type => :mailer do
8
8
  let(:user) { create(:user) }
9
9
 
10
10
  it "confirm_email accepts a user id as an alternative to a User object" do
11
- expect {
12
- test_email = Spree::TestMailer.test_email('test@example.com')
13
- }.not_to raise_error
11
+ Spree::TestMailer.test_email('test@example.com')
14
12
  end
15
13
  end
@@ -175,7 +175,7 @@ describe Spree::Address, :type => :model do
175
175
  end
176
176
  end
177
177
 
178
- # Regression test for #1142
178
+ # Regression test for https://github.com/spree/spree/issues/1142
179
179
  it "uses the first available country if :default_country_id is set to an invalid value" do
180
180
  Spree::Config[:default_country_id] = "0"
181
181
  expect(Spree::Address.build_default.country).to eq default_country
@@ -277,14 +277,14 @@ describe Spree::Address, :type => :model do
277
277
  let(:base_attributes) do
278
278
  {
279
279
  'id' => 1,
280
- 'created_at' => Time.now,
281
- 'updated_at' => Time.now,
280
+ 'created_at' => Time.current,
281
+ 'updated_at' => Time.current,
282
282
  'address1' => '1234 way',
283
283
  }
284
284
  end
285
285
  let(:merge_attributes) do
286
286
  {
287
- 'updated_at' => Time.now,
287
+ 'updated_at' => Time.current,
288
288
  'address2' => 'apt 2',
289
289
  }
290
290
  end
@@ -4,9 +4,7 @@ describe Spree::AdjustmentReason do
4
4
 
5
5
  describe 'creation' do
6
6
  it 'is successful' do
7
- expect {
8
- create(:adjustment_reason)
9
- }.to_not raise_error
7
+ create(:adjustment_reason)
10
8
  end
11
9
  end
12
10
 
@@ -21,4 +21,8 @@ describe Spree::AppConfiguration, :type => :model do
21
21
  expect(prefs.variant_search_class).to eq Spree::Core::Search::Variant
22
22
  end
23
23
 
24
+ describe '#stock' do
25
+ subject { prefs.stock }
26
+ it { is_expected.to eq Spree::StockConfiguration }
27
+ end
24
28
  end
@@ -12,17 +12,17 @@ describe Spree::Calculator::PriceSack, :type => :model do
12
12
  let(:order) { stub_model(Spree::Order) }
13
13
  let(:shipment) { stub_model(Spree::Shipment, :amount => 10) }
14
14
 
15
- # Regression test for #714 and #739
15
+ # Regression test for https://github.com/spree/spree/issues/714 and https://github.com/spree/spree/issues/739
16
16
  it "computes with an order object" do
17
17
  calculator.compute(order)
18
18
  end
19
19
 
20
- # Regression test for #1156
20
+ # Regression test for https://github.com/spree/spree/issues/1156
21
21
  it "computes with a shipment object" do
22
22
  calculator.compute(shipment)
23
23
  end
24
24
 
25
- # Regression test for #2055
25
+ # Regression test for https://github.com/spree/spree/issues/2055
26
26
  it "computes the correct amount" do
27
27
  expect(calculator.compute(2)).to eq(calculator.preferred_normal_amount)
28
28
  expect(calculator.compute(6)).to eq(calculator.preferred_discount_amount)
@@ -12,17 +12,17 @@ describe Spree::Calculator::PriceSack, :type => :model do
12
12
  let(:order) { stub_model(Spree::Order) }
13
13
  let(:shipment) { stub_model(Spree::Shipment, :amount => 10) }
14
14
 
15
- # Regression test for #714 and #739
15
+ # Regression test for https://github.com/spree/spree/issues/714 and https://github.com/spree/spree/issues/739
16
16
  it "computes with an order object" do
17
17
  calculator.compute(order)
18
18
  end
19
19
 
20
- # Regression test for #1156
20
+ # Regression test for https://github.com/spree/spree/issues/1156
21
21
  it "computes with a shipment object" do
22
22
  calculator.compute(shipment)
23
23
  end
24
24
 
25
- # Regression test for #2055
25
+ # Regression test for https://github.com/spree/spree/issues/2055
26
26
  it "computes the correct amount" do
27
27
  expect(calculator.compute(2)).to eq(calculator.preferred_normal_amount)
28
28
  expect(calculator.compute(6)).to eq(calculator.preferred_discount_amount)
@@ -26,22 +26,98 @@ describe Spree::Calculator::TieredPercent, :type => :model do
26
26
  end
27
27
 
28
28
  describe "#compute" do
29
- let(:line_item) { mock_model Spree::LineItem, amount: amount }
29
+ let(:order) { create(:order_with_line_items, line_items_count: line_item_count, line_items_price: price) }
30
+ let(:price) { 10 }
31
+
30
32
  before do
31
33
  calculator.preferred_base_percent = 10
32
34
  calculator.preferred_tiers = {
33
- 100 => 15,
34
- 200 => 20
35
+ 20 => 15,
36
+ 30 => 20
35
37
  }
36
38
  end
37
- subject { calculator.compute(line_item) }
38
- context "when amount falls within the first tier" do
39
- let(:amount) { 50 }
40
- it { is_expected.to eq 5 }
39
+
40
+ context "with a line item" do
41
+ let(:line_item) { order.line_items.first }
42
+ subject { calculator.compute(line_item) }
43
+
44
+ context "for multiple line items" do
45
+ context "when amount falls within the first tier" do
46
+ let(:line_item_count) { 1 }
47
+ it { is_expected.to eq 1.0 }
48
+ end
49
+
50
+ context "when amount falls within the second tier" do
51
+ let(:line_item_count) { 2 }
52
+ it { is_expected.to eq 1.5 }
53
+ end
54
+
55
+ context "when amount falls within the third tier" do
56
+ let(:line_item_count) { 3 }
57
+ it { is_expected.to eq 2.0 }
58
+ end
59
+ end
60
+
61
+ context "for a single line item" do
62
+ let(:line_item_count) { 1 }
63
+
64
+ context "when amount falls within the first tier" do
65
+ let(:price) { 10 }
66
+ it { is_expected.to eq 1.0 }
67
+ end
68
+
69
+ context "when amount falls within the second tier" do
70
+ let(:price) { 20 }
71
+ it { is_expected.to eq 3.0 }
72
+ end
73
+
74
+ context "when amount falls within the third tier" do
75
+ let(:price) { 30 }
76
+ it { is_expected.to eq 6.0 }
77
+ end
78
+ end
41
79
  end
42
- context "when amount falls within the second tier" do
43
- let(:amount) { 150 }
44
- it { is_expected.to eq 22 }
80
+
81
+ context "with an order" do
82
+ subject { calculator.compute(order) }
83
+
84
+ let(:line_item_count) { 1 }
85
+
86
+ context "for multiple line items" do
87
+ context "when amount falls within the first tier" do
88
+ let(:line_item_count) { 1 }
89
+ it { is_expected.to eq 1.0 }
90
+ end
91
+
92
+ context "when amount falls within the second tier" do
93
+ let(:line_item_count) { 2 }
94
+ it { is_expected.to eq 3.0 }
95
+ end
96
+
97
+ context "when amount falls within the third tier" do
98
+ let(:line_item_count) { 3 }
99
+ it { is_expected.to eq 6.0 }
100
+ end
101
+ end
102
+
103
+ context "for a single line item" do
104
+ let(:line_item_count) { 1 }
105
+
106
+ context "when amount falls within the first tier" do
107
+ let(:price) { 10 }
108
+ it { is_expected.to eq 1.0 }
109
+ end
110
+
111
+ context "when amount falls within the second tier" do
112
+ let(:price) { 20 }
113
+ it { is_expected.to eq 3.0 }
114
+ end
115
+
116
+ context "when amount falls within the third tier" do
117
+ let(:price) { 30 }
118
+ it { is_expected.to eq 6.0 }
119
+ end
120
+ end
45
121
  end
46
122
  end
47
123
  end
@@ -6,7 +6,9 @@ describe Spree::Carton do
6
6
  describe "#create" do
7
7
  subject { carton }
8
8
 
9
- it { expect { subject }.to_not raise_error }
9
+ it "raises no errors" do
10
+ subject
11
+ end
10
12
  end
11
13
 
12
14
  describe "#tracking_url" do
@@ -2,12 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  describe Classification, :type => :model do
5
- # Regression test for #3494
5
+ # Regression test for https://github.com/spree/spree/issues/3494
6
6
  it "cannot link the same taxon to the same product more than once" do
7
7
  product = create(:product)
8
8
  taxon = create(:taxon)
9
9
  add_taxon = lambda { product.taxons << taxon }
10
- expect(add_taxon).not_to raise_error
10
+ add_taxon.call
11
11
  expect(add_taxon).to raise_error(ActiveRecord::RecordInvalid)
12
12
  end
13
13
 
@@ -90,4 +90,4 @@ module Spree
90
90
  end
91
91
  end
92
92
  end
93
- end
93
+ end
@@ -5,7 +5,7 @@ describe Spree::CreditCard, type: :model do
5
5
  {
6
6
  number: '4111111111111111',
7
7
  verification_value: '123',
8
- expiry: "12 / #{(Time.now.year + 1).to_s.last(2)}",
8
+ expiry: "12 / #{(Time.current.year + 1).to_s.last(2)}",
9
9
  name: 'Spree Commerce'
10
10
  }
11
11
  end
@@ -38,12 +38,12 @@ describe Spree::CreditCard, type: :model do
38
38
 
39
39
  context "#can_capture?" do
40
40
  it "should be true if payment is pending" do
41
- payment = mock_model(Spree::Payment, pending?: true, created_at: Time.now)
41
+ payment = mock_model(Spree::Payment, pending?: true, created_at: Time.current)
42
42
  expect(credit_card.can_capture?(payment)).to be true
43
43
  end
44
44
 
45
45
  it "should be true if payment is checkout" do
46
- payment = mock_model(Spree::Payment, pending?: false, checkout?: true, created_at: Time.now)
46
+ payment = mock_model(Spree::Payment, pending?: false, checkout?: true, created_at: Time.current)
47
47
  expect(credit_card.can_capture?(payment)).to be true
48
48
  end
49
49
  end
@@ -154,7 +154,7 @@ describe Spree::CreditCard, type: :model do
154
154
  end
155
155
  end
156
156
 
157
- # Regression test for #3847 & #3896
157
+ # Regression test for https://github.com/spree/spree/issues/3847 and https://github.com/spree/spree/issues/3896
158
158
  context "#expiry=" do
159
159
  it "can set with a 2-digit month and year" do
160
160
  credit_card.expiry = '04 / 15'
@@ -193,12 +193,12 @@ describe Spree::CreditCard, type: :model do
193
193
  end
194
194
 
195
195
  it "does not blow up when passed an empty string" do
196
- expect { credit_card.expiry = '' }.not_to raise_error
196
+ credit_card.expiry = ''
197
197
  end
198
198
 
199
- # Regression test for #4725
199
+ # Regression test for https://github.com/spree/spree/issues/4725
200
200
  it "does not blow up when passed one number" do
201
- expect { credit_card.expiry = '12' }.not_to raise_error
201
+ credit_card.expiry = '12'
202
202
  end
203
203
 
204
204
  end
@@ -254,7 +254,7 @@ describe Spree::CreditCard, type: :model do
254
254
 
255
255
  context "#associations" do
256
256
  it "should be able to access its payments" do
257
- expect { credit_card.payments.to_a }.not_to raise_error
257
+ credit_card.payments.to_a
258
258
  end
259
259
  end
260
260
 
@@ -281,8 +281,8 @@ describe Spree::CreditCard, type: :model do
281
281
  context "#to_active_merchant" do
282
282
  before do
283
283
  credit_card.number = "4111111111111111"
284
- credit_card.year = Time.now.year
285
- credit_card.month = Time.now.month
284
+ credit_card.year = Time.current.year
285
+ credit_card.month = Time.current.month
286
286
  credit_card.name = "Ludwig van Beethoven"
287
287
  credit_card.verification_value = 123
288
288
  end
@@ -290,8 +290,8 @@ describe Spree::CreditCard, type: :model do
290
290
  it "converts to an ActiveMerchant::Billing::CreditCard object" do
291
291
  am_card = credit_card.to_active_merchant
292
292
  expect(am_card.number).to eq("4111111111111111")
293
- expect(am_card.year).to eq(Time.now.year)
294
- expect(am_card.month).to eq(Time.now.month)
293
+ expect(am_card.year).to eq(Time.current.year)
294
+ expect(am_card.month).to eq(Time.current.month)
295
295
  expect(am_card.first_name).to eq("Ludwig")
296
296
  expect(am_card.last_name).to eq("van Beethoven")
297
297
  expect(am_card.verification_value).to eq(123)
@@ -325,17 +325,17 @@ describe Spree::CreditCard, type: :model do
325
325
  user = FactoryGirl.create(:user)
326
326
  first = FactoryGirl.create(:credit_card, user: user, default: true)
327
327
  second = FactoryGirl.create(:credit_card, user: user, default: false)
328
- first.update_columns(year: DateTime.now.year, month: 1.month.ago.month)
328
+ first.update_columns(year: DateTime.current.year, month: 1.month.ago.month)
329
329
 
330
- expect { second.update_attributes!(default: true) }.not_to raise_error
330
+ second.update_attributes!(default: true)
331
331
  end
332
332
 
333
333
  it 'allows this card to save even if the previously default card has expired' do
334
334
  user = FactoryGirl.create(:user)
335
335
  first = FactoryGirl.create(:credit_card, user: user, default: true)
336
336
  second = FactoryGirl.create(:credit_card, user: user, default: false)
337
- first.update_columns(year: DateTime.now.year, month: 1.month.ago.month)
337
+ first.update_columns(year: DateTime.current.year, month: 1.month.ago.month)
338
338
 
339
- expect { second.update_attributes!(default: true) }.not_to raise_error
339
+ second.update_attributes!(default: true)
340
340
  end
341
341
  end
@@ -202,7 +202,7 @@ describe Spree::CustomerReturn, :type => :model do
202
202
 
203
203
  it "should NOT raise an error when no stock item exists in the stock location" do
204
204
  inventory_unit.find_stock_item.destroy
205
- expect { create(:customer_return_without_return_items, return_items: [return_item], stock_location_id: new_stock_location.id) }.not_to raise_error
205
+ create(:customer_return_without_return_items, return_items: [return_item], stock_location_id: new_stock_location.id)
206
206
  end
207
207
 
208
208
  it "should not update the stock item counts in the original stock location" do
@@ -4,7 +4,7 @@ describe Spree::Gateway::BogusSimple, :type => :model do
4
4
 
5
5
  subject { Spree::Gateway::BogusSimple.new }
6
6
 
7
- # regression test for #3824
7
+ # regression test for https://github.com/spree/spree/issues/3824
8
8
  describe "#capture" do
9
9
  it "returns success with the right response code" do
10
10
  response = subject.capture(123, '12345', {})
@@ -8,7 +8,7 @@ describe Spree::InventoryUnit, :type => :model do
8
8
  context "#backordered_for_stock_item" do
9
9
  let(:order) do
10
10
  order = create(:order, state: 'complete', ship_address: create(:ship_address))
11
- order.completed_at = Time.now
11
+ order.completed_at = Time.current
12
12
  create(:shipment, order: order, stock_location: stock_location)
13
13
  order.shipments.reload
14
14
  create(:line_item, order: order, variant: stock_item.variant)
@@ -37,10 +37,10 @@ describe Spree::InventoryUnit, :type => :model do
37
37
  stock_item.set_count_on_hand(-2)
38
38
  end
39
39
 
40
- # Regression for #3066
40
+ # Regression for https://github.com/spree/spree/issues/3066
41
41
  it "returns modifiable objects" do
42
42
  units = Spree::InventoryUnit.backordered_for_stock_item(stock_item)
43
- expect { units.first.save! }.to_not raise_error
43
+ units.first.save!
44
44
  end
45
45
 
46
46
  it "finds inventory units from its stock location when the unit's variant matches the stock item's variant" do
@@ -253,7 +253,7 @@ module Spree
253
253
  promo_c.update_column(:eligible, false)
254
254
  end
255
255
 
256
- # regression for #3274
256
+ # regression for https://github.com/spree/spree/issues/3274
257
257
  it "still makes the previous best eligible adjustment valid" do
258
258
  subject.update
259
259
  expect(line_item.adjustments.promotion.eligible.first.label).to eq('Promotion A')
@@ -89,7 +89,7 @@ describe Spree::LineItem, :type => :model do
89
89
  end
90
90
  end
91
91
 
92
- # Test for #3391
92
+ # Test for https://github.com/spree/spree/issues/3391
93
93
  context '#copy_price' do
94
94
  it "copies over a variant's prices" do
95
95
  line_item.price = nil
@@ -103,7 +103,7 @@ describe Spree::LineItem, :type => :model do
103
103
  end
104
104
  end
105
105
 
106
- # Test for #3481
106
+ # Test for https://github.com/spree/spree/issues/3481
107
107
  context '#copy_tax_category' do
108
108
  it "copies over a variant's tax category" do
109
109
  line_item.tax_category = nil