solidus_core 1.2.3 → 1.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_core might be problematic. Click here for more details.

Files changed (573) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/spree.js.coffee.erb +1 -1
  5. data/app/helpers/spree/base_helper.rb +21 -43
  6. data/app/helpers/spree/orders_helper.rb +0 -1
  7. data/app/helpers/spree/products_helper.rb +10 -12
  8. data/app/helpers/spree/taxons_helper.rb +4 -4
  9. data/app/mailers/spree/base_mailer.rb +1 -3
  10. data/app/mailers/spree/carton_mailer.rb +2 -2
  11. data/app/mailers/spree/order_mailer.rb +2 -2
  12. data/app/models/concerns/spree/adjustment_source.rb +12 -16
  13. data/app/models/concerns/spree/calculated_adjustments.rb +17 -14
  14. data/app/models/concerns/spree/default_price.rb +10 -26
  15. data/app/models/concerns/spree/display_money.rb +1 -1
  16. data/app/models/concerns/spree/ordered_property_value_list.rb +10 -12
  17. data/app/models/concerns/spree/ransackable_attributes.rb +6 -5
  18. data/app/models/concerns/spree/user_address_book.rb +87 -81
  19. data/app/models/concerns/spree/user_methods.rb +2 -2
  20. data/app/models/concerns/spree/user_payment_source.rb +12 -8
  21. data/app/models/spree/ability.rb +2 -2
  22. data/app/models/spree/address.rb +37 -38
  23. data/app/models/spree/adjustment.rb +2 -6
  24. data/app/models/spree/app_configuration.rb +60 -5
  25. data/app/models/spree/base.rb +1 -1
  26. data/app/models/spree/calculator/default_tax.rb +28 -24
  27. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
  28. data/app/models/spree/calculator/flat_rate.rb +2 -2
  29. data/app/models/spree/calculator/flexi_rate.rb +4 -4
  30. data/app/models/spree/calculator/percent_per_item.rb +8 -9
  31. data/app/models/spree/calculator/price_sack.rb +3 -3
  32. data/app/models/spree/calculator/returns/default_refund_amount.rb +11 -12
  33. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
  34. data/app/models/spree/calculator/shipping/flat_rate.rb +2 -2
  35. data/app/models/spree/calculator/shipping/flexi_rate.rb +3 -3
  36. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  37. data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
  38. data/app/models/spree/calculator/tiered_flat_rate.rb +2 -1
  39. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  40. data/app/models/spree/calculator.rb +3 -3
  41. data/app/models/spree/carton.rb +2 -2
  42. data/app/models/spree/country.rb +7 -4
  43. data/app/models/spree/credit_card.rb +26 -22
  44. data/app/models/spree/customer_return.rb +8 -7
  45. data/app/models/spree/exchange.rb +1 -9
  46. data/app/models/spree/gateway/bogus.rb +31 -31
  47. data/app/models/spree/gateway/bogus_simple.rb +6 -8
  48. data/app/models/spree/gateway.rb +9 -15
  49. data/app/models/spree/image.rb +3 -3
  50. data/app/models/spree/inventory_unit.rb +23 -23
  51. data/app/models/spree/item_adjustments.rb +3 -2
  52. data/app/models/spree/legacy_user.rb +1 -5
  53. data/app/models/spree/line_item.rb +95 -84
  54. data/app/models/spree/option_type.rb +1 -1
  55. data/app/models/spree/option_value.rb +3 -1
  56. data/app/models/spree/order/checkout.rb +45 -44
  57. data/app/models/spree/order/payments.rb +42 -45
  58. data/app/models/spree/order.rb +70 -75
  59. data/app/models/spree/order_cancellations.rb +4 -4
  60. data/app/models/spree/order_capturing.rb +3 -2
  61. data/app/models/spree/order_contents.rb +61 -59
  62. data/app/models/spree/order_inventory.rb +59 -54
  63. data/app/models/spree/order_mutex.rb +0 -1
  64. data/app/models/spree/order_shipping.rb +8 -9
  65. data/app/models/spree/order_stock_location.rb +3 -3
  66. data/app/models/spree/order_update_attributes.rb +0 -2
  67. data/app/models/spree/order_updater.rb +11 -24
  68. data/app/models/spree/payment/processing.rb +26 -37
  69. data/app/models/spree/payment.rb +68 -71
  70. data/app/models/spree/payment_method/check.rb +2 -2
  71. data/app/models/spree/payment_method/store_credit.rb +6 -7
  72. data/app/models/spree/payment_method.rb +11 -8
  73. data/app/models/spree/preferences/configuration.rb +2 -2
  74. data/app/models/spree/preferences/preferable.rb +1 -1
  75. data/app/models/spree/preferences/preferable_class_methods.rb +1 -1
  76. data/app/models/spree/preferences/scoped_store.rb +6 -5
  77. data/app/models/spree/preferences/static_model_preferences.rb +1 -1
  78. data/app/models/spree/preferences/statically_configurable.rb +2 -2
  79. data/app/models/spree/preferences/store.rb +2 -6
  80. data/app/models/spree/price.rb +17 -19
  81. data/app/models/spree/product/scopes.rb +18 -17
  82. data/app/models/spree/product.rb +28 -11
  83. data/app/models/spree/product_property.rb +2 -0
  84. data/app/models/spree/product_scope/scopes.rb +22 -22
  85. data/app/models/spree/promotion/actions/create_adjustment.rb +3 -4
  86. data/app/models/spree/promotion/actions/create_item_adjustments.rb +8 -8
  87. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +3 -3
  88. data/app/models/spree/promotion/actions/free_shipping.rb +4 -4
  89. data/app/models/spree/promotion/rules/first_order.rb +7 -6
  90. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +2 -3
  91. data/app/models/spree/promotion/rules/item_total.rb +5 -2
  92. data/app/models/spree/promotion/rules/nth_order.rb +3 -4
  93. data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
  94. data/app/models/spree/promotion/rules/option_value.rb +1 -2
  95. data/app/models/spree/promotion/rules/product.rb +4 -4
  96. data/app/models/spree/promotion/rules/taxon.rb +5 -5
  97. data/app/models/spree/promotion/rules/user.rb +1 -1
  98. data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
  99. data/app/models/spree/promotion.rb +8 -8
  100. data/app/models/spree/promotion_action.rb +1 -1
  101. data/app/models/spree/promotion_builder.rb +2 -2
  102. data/app/models/spree/promotion_chooser.rb +1 -0
  103. data/app/models/spree/promotion_code/code_builder.rb +3 -3
  104. data/app/models/spree/promotion_handler/cart.rb +17 -16
  105. data/app/models/spree/promotion_handler/coupon.rb +10 -14
  106. data/app/models/spree/promotion_handler/page.rb +4 -4
  107. data/app/models/spree/promotion_rule.rb +4 -3
  108. data/app/models/spree/prototype.rb +0 -1
  109. data/app/models/spree/refund.rb +3 -3
  110. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
  111. data/app/models/spree/reimbursement.rb +3 -5
  112. data/app/models/spree/reimbursement_performer.rb +0 -5
  113. data/app/models/spree/reimbursement_tax_calculator.rb +2 -7
  114. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  115. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  116. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +3 -3
  117. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  118. data/app/models/spree/reimbursement_type.rb +1 -1
  119. data/app/models/spree/return_authorization.rb +38 -37
  120. data/app/models/spree/return_item/eligibility_validator/default.rb +4 -4
  121. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -1
  122. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -1
  123. data/app/models/spree/return_item.rb +24 -23
  124. data/app/models/spree/returns_calculator.rb +1 -2
  125. data/app/models/spree/shipment.rb +80 -74
  126. data/app/models/spree/shipping_calculator.rb +4 -5
  127. data/app/models/spree/shipping_manifest.rb +3 -4
  128. data/app/models/spree/shipping_method.rb +54 -23
  129. data/app/models/spree/shipping_method_stock_location.rb +4 -0
  130. data/app/models/spree/shipping_rate.rb +24 -29
  131. data/app/models/spree/shipping_rate_tax.rb +41 -0
  132. data/app/models/spree/state.rb +1 -1
  133. data/app/models/spree/state_change.rb +1 -1
  134. data/app/models/spree/stock/availability_validator.rb +2 -2
  135. data/app/models/spree/stock/coordinator.rb +12 -13
  136. data/app/models/spree/stock/differentiator.rb +1 -0
  137. data/app/models/spree/stock/estimator.rb +18 -25
  138. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  139. data/app/models/spree/stock/package.rb +19 -9
  140. data/app/models/spree/stock/packer.rb +2 -3
  141. data/app/models/spree/stock/prioritizer.rb +3 -2
  142. data/app/models/spree/stock/quantifier.rb +2 -3
  143. data/app/models/spree/stock/shipping_rate_selector.rb +0 -1
  144. data/app/models/spree/stock/shipping_rate_sorter.rb +0 -1
  145. data/app/models/spree/stock/splitter/backordered.rb +0 -2
  146. data/app/models/spree/stock/splitter/base.rb +3 -2
  147. data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
  148. data/app/models/spree/stock/splitter/weight.rb +2 -2
  149. data/app/models/spree/stock_item.rb +36 -37
  150. data/app/models/spree/stock_location.rb +17 -13
  151. data/app/models/spree/stock_movement.rb +1 -3
  152. data/app/models/spree/stock_transfer.rb +8 -8
  153. data/app/models/spree/store.rb +6 -0
  154. data/app/models/spree/store_credit.rb +24 -24
  155. data/app/models/spree/store_credit_category.rb +1 -2
  156. data/app/models/spree/tax/item_adjuster.rb +37 -0
  157. data/app/models/spree/tax/order_adjuster.rb +38 -0
  158. data/app/models/spree/tax/shipping_rate_taxer.rb +31 -0
  159. data/app/models/spree/tax/tax_helpers.rb +49 -0
  160. data/app/models/spree/tax/tax_location.rb +33 -0
  161. data/app/models/spree/tax_category.rb +1 -1
  162. data/app/models/spree/tax_rate.rb +46 -111
  163. data/app/models/spree/taxon.rb +36 -12
  164. data/app/models/spree/taxonomy.rb +10 -10
  165. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -1
  166. data/app/models/spree/variant/pricer.rb +19 -0
  167. data/app/models/spree/variant/pricing_options.rb +31 -0
  168. data/app/models/spree/variant/scopes.rb +9 -9
  169. data/app/models/spree/variant.rb +95 -89
  170. data/app/models/spree/variant_property_rule.rb +1 -1
  171. data/app/models/spree/variant_property_rule_value.rb +2 -0
  172. data/app/models/spree/zone.rb +60 -24
  173. data/config/initializers/friendly_id.rb +1 -1
  174. data/config/locales/en.yml +337 -51
  175. data/config/routes.rb +1 -1
  176. data/db/default/spree/countries.rb +9 -15
  177. data/db/default/spree/roles.rb +1 -2
  178. data/db/default/spree/states.rb +7 -11
  179. data/db/default/spree/store_credit.rb +2 -2
  180. data/db/default/spree/stores.rb +2 -1
  181. data/db/migrate/20120831092320_spree_one_two.rb +100 -101
  182. data/db/migrate/20120831092359_spree_promo_one_two.rb +12 -12
  183. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +1 -1
  184. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +1 -1
  185. data/db/migrate/20121010142909_add_states_required_to_countries.rb +1 -1
  186. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +2 -2
  187. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +4 -4
  188. data/db/migrate/20121031162139_split_prices_from_variants.rb +8 -8
  189. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +2 -2
  190. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +1 -1
  191. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +1 -1
  192. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +1 -2
  193. data/db/migrate/20130211190146_create_spree_stock_items.rb +1 -1
  194. data/db/migrate/20130213191427_create_default_stock.rb +12 -21
  195. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +1 -1
  196. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +2 -2
  197. data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
  198. data/db/migrate/20130301162924_create_shipping_method_categories.rb +2 -2
  199. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +4 -4
  200. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +2 -3
  201. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +1 -1
  202. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +1 -1
  203. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +1 -1
  204. data/db/migrate/20130319062004_change_orders_total_precision.rb +4 -4
  205. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +1 -3
  206. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -4
  207. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +1 -3
  208. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +2 -2
  209. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +2 -2
  210. data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
  211. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +3 -3
  212. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +1 -1
  213. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +3 -3
  214. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +1 -1
  215. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +2 -2
  216. data/db/migrate/20130807024301_upgrade_adjustments.rb +3 -3
  217. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +1 -1
  218. data/db/migrate/20130813140619_expand_order_number_size.rb +2 -2
  219. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +1 -1
  220. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +1 -1
  221. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  222. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +1 -1
  223. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  224. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +1 -0
  225. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +1 -1
  226. data/db/migrate/20131118043959_add_included_to_adjustments.rb +1 -1
  227. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -1
  228. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +1 -1
  229. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +1 -1
  230. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -0
  231. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +1 -1
  232. data/db/migrate/20140309023735_migrate_old_preferences.rb +4 -3
  233. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  234. data/db/migrate/20140410141842_add_many_missing_indexes.rb +13 -15
  235. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +38 -40
  236. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +4 -4
  237. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
  238. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -1
  239. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +4 -4
  240. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +4 -6
  241. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -0
  242. data/db/migrate/20141217215630_update_product_slug_index.rb +2 -4
  243. data/db/migrate/20150112194216_add_position_to_stock_location.rb +2 -2
  244. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +0 -1
  245. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +0 -1
  246. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +3 -3
  247. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -1
  248. data/db/migrate/20150612205731_remove_spree_configurations.rb +2 -2
  249. data/db/migrate/20150619160613_create_adjustment_reason.rb +1 -1
  250. data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +10 -2
  251. data/db/migrate/20150731201146_add_spree_user_addresses.rb +0 -1
  252. data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +1 -1
  253. data/db/migrate/20151001121454_create_spree_shipping_method_stock_locations.rb +13 -0
  254. data/db/migrate/20151002023248_add_foreign_key_to_shipping_method_stock_location.rb +6 -0
  255. data/db/migrate/20151026093607_change_return_item_pre_tax_amount_to_amount.rb +29 -0
  256. data/db/migrate/20160111091912_add_column_available_to_all_on_spree_shipping_method.rb +5 -0
  257. data/db/migrate/20160116133604_add_position_to_spree_payment_methods.rb +5 -0
  258. data/db/migrate/20160122182105_add_carrier_and_service_level_to_spree_shipping_methods.rb +6 -0
  259. data/db/migrate/20160224201413_create_spree_shipping_rate_taxes.rb +11 -0
  260. data/db/migrate/20160229133259_add_cart_tax_country_iso_to_spree_store.rb +5 -0
  261. data/db/migrate/20160301103333_remove_pre_tax_amount_on_line_item_and_shipment.rb +6 -0
  262. data/db/migrate/20160308000300_disallow_adjustment_finalized_nulls.rb +19 -0
  263. data/db/migrate/20160318145302_add_timestamps_to_prices.rb +5 -0
  264. data/db/migrate/20160330204846_add_missing_timestamp_columns.rb +20 -0
  265. data/lib/generators/spree/custom_user/custom_user_generator.rb +3 -8
  266. data/lib/generators/spree/dummy/dummy_generator.rb +17 -19
  267. data/lib/generators/spree/install/install_generator.rb +15 -15
  268. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  269. data/lib/spree/core/controller_helpers/auth.rb +2 -4
  270. data/lib/spree/core/controller_helpers/common.rb +42 -43
  271. data/lib/spree/core/controller_helpers/order.rb +5 -9
  272. data/lib/spree/core/controller_helpers/payment_parameters.rb +4 -5
  273. data/lib/spree/core/controller_helpers/pricing.rb +27 -0
  274. data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
  275. data/lib/spree/core/controller_helpers/search.rb +2 -2
  276. data/lib/spree/core/controller_helpers/store.rb +3 -3
  277. data/lib/spree/core/controller_helpers/strong_parameters.rb +4 -4
  278. data/lib/spree/core/current_store.rb +1 -1
  279. data/lib/spree/core/delegate_belongs_to.rb +19 -21
  280. data/lib/spree/core/engine.rb +12 -8
  281. data/lib/spree/core/environment/calculators.rb +0 -1
  282. data/lib/spree/core/environment_extension.rb +4 -4
  283. data/lib/spree/core/importer/order.rb +17 -22
  284. data/lib/spree/core/importer/product.rb +10 -9
  285. data/lib/spree/core/permalinks.rb +16 -16
  286. data/lib/spree/core/product_duplicator.rb +2 -3
  287. data/lib/spree/core/product_filters.rb +15 -16
  288. data/lib/spree/core/role_configuration.rb +2 -2
  289. data/lib/spree/core/search/base.rb +71 -57
  290. data/lib/spree/core/search/variant.rb +2 -4
  291. data/lib/spree/core/unreturned_item_charger.rb +1 -2
  292. data/lib/spree/core/validators/email.rb +2 -2
  293. data/lib/spree/core/version.rb +1 -1
  294. data/lib/spree/core.rb +2 -4
  295. data/lib/spree/i18n.rb +1 -1
  296. data/lib/spree/localized_number.rb +3 -1
  297. data/lib/spree/migrations.rb +27 -26
  298. data/lib/spree/money.rb +19 -4
  299. data/lib/spree/permission_sets/base.rb +1 -1
  300. data/lib/spree/permitted_attributes.rb +7 -7
  301. data/lib/spree/responder.rb +4 -5
  302. data/lib/spree/testing_support/authorization_helpers.rb +1 -1
  303. data/lib/spree/testing_support/caching.rb +8 -8
  304. data/lib/spree/testing_support/capybara_ext.rb +11 -13
  305. data/lib/spree/testing_support/common_rake.rb +4 -4
  306. data/lib/spree/testing_support/controller_requests.rb +1 -1
  307. data/lib/spree/testing_support/extension_rake.rb +1 -2
  308. data/lib/spree/testing_support/factories/address_factory.rb +14 -3
  309. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
  310. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  311. data/lib/spree/testing_support/factories/credit_card_factory.rb +4 -0
  312. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -6
  313. data/lib/spree/testing_support/factories/line_item_factory.rb +1 -1
  314. data/lib/spree/testing_support/factories/order_factory.rb +10 -11
  315. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  316. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -1
  317. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -1
  318. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  319. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  320. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  321. data/lib/spree/testing_support/factories/shipping_method_factory.rb +5 -2
  322. data/lib/spree/testing_support/factories/state_factory.rb +17 -7
  323. data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -4
  324. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +1 -1
  325. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -1
  326. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -2
  327. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
  328. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  329. data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
  330. data/lib/spree/testing_support/factories/zone_factory.rb +2 -1
  331. data/lib/spree/testing_support/i18n.rb +4 -5
  332. data/lib/spree/testing_support/order_walkthrough.rb +8 -9
  333. data/lib/spree/testing_support/preferences.rb +1 -1
  334. data/lib/spree/testing_support/sequences.rb +5 -4
  335. data/lib/tasks/core.rake +15 -19
  336. data/lib/tasks/email.rake +3 -3
  337. data/lib/tasks/exchanges.rake +12 -14
  338. data/lib/tasks/migrations/assure_store_on_orders.rake +38 -0
  339. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +2 -2
  340. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +1 -11
  341. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +17 -0
  342. data/lib/tasks/migrations/migrate_user_addresses.rake +1 -1
  343. data/lib/tasks/order_capturing.rake +1 -1
  344. data/lib/tasks/upgrade.rake +11 -0
  345. data/script/rails +0 -1
  346. data/solidus_core.gemspec +6 -8
  347. data/spec/helpers/base_helper_spec.rb +15 -18
  348. data/spec/helpers/order_helper_spec.rb +2 -2
  349. data/spec/helpers/products_helper_spec.rb +43 -51
  350. data/spec/helpers/taxons_helper_spec.rb +1 -1
  351. data/spec/lib/i18n_spec.rb +11 -11
  352. data/spec/lib/search/base_spec.rb +12 -14
  353. data/spec/lib/search/variant_spec.rb +1 -0
  354. data/spec/lib/spree/core/controller_helpers/order_spec.rb +1 -7
  355. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +26 -28
  356. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +63 -0
  357. data/spec/lib/spree/core/controller_helpers/search_spec.rb +4 -2
  358. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
  359. data/spec/lib/spree/core/importer/order_spec.rb +95 -90
  360. data/spec/lib/spree/core/role_configuration_spec.rb +16 -16
  361. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +35 -0
  362. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +10 -1
  363. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -1
  364. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +6 -1
  365. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +37 -1
  366. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +2 -2
  367. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +1 -1
  368. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +1 -2
  369. data/spec/lib/spree/core/testing_support/preferences_spec.rb +26 -0
  370. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +7 -9
  371. data/spec/lib/spree/core/validators/email_spec.rb +8 -6
  372. data/spec/lib/spree/localized_number_spec.rb +1 -3
  373. data/spec/lib/spree/migrations_spec.rb +2 -2
  374. data/spec/lib/spree/money_spec.rb +75 -6
  375. data/spec/lib/tasks/exchanges_spec.rb +2 -12
  376. data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -1
  377. data/spec/lib/tasks/order_capturing_spec.rb +1 -1
  378. data/spec/mailers/carton_mailer_spec.rb +3 -3
  379. data/spec/mailers/order_mailer_spec.rb +9 -11
  380. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  381. data/spec/mailers/test_mailer_spec.rb +1 -1
  382. data/spec/models/spree/ability_spec.rb +4 -7
  383. data/spec/models/spree/address_spec.rb +32 -35
  384. data/spec/models/spree/adjustment_reason_spec.rb +0 -2
  385. data/spec/models/spree/adjustment_spec.rb +2 -2
  386. data/spec/models/spree/app_configuration_spec.rb +33 -3
  387. data/spec/models/spree/asset_spec.rb +1 -2
  388. data/spec/models/spree/calculator/default_tax_spec.rb +141 -52
  389. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  390. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  391. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  392. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  393. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +9 -11
  394. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  395. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  396. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -7
  397. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  398. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +2 -2
  399. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -2
  400. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  401. data/spec/models/spree/calculator_spec.rb +3 -8
  402. data/spec/models/spree/carton_spec.rb +1 -1
  403. data/spec/models/spree/classification_spec.rb +1 -1
  404. data/spec/models/spree/concerns/display_money_spec.rb +0 -1
  405. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +26 -1
  406. data/spec/models/spree/concerns/user_address_book_spec.rb +19 -12
  407. data/spec/models/spree/concerns/user_methods_spec.rb +1 -1
  408. data/spec/models/spree/country_spec.rb +52 -0
  409. data/spec/models/spree/credit_card_spec.rb +17 -12
  410. data/spec/models/spree/customer_return_spec.rb +27 -23
  411. data/spec/models/spree/exchange_spec.rb +2 -7
  412. data/spec/models/spree/gateway/bogus_simple.rb +2 -4
  413. data/spec/models/spree/gateway/bogus_spec.rb +4 -2
  414. data/spec/models/spree/gateway_spec.rb +8 -3
  415. data/spec/models/spree/inventory_unit_spec.rb +13 -14
  416. data/spec/models/spree/item_adjustments_spec.rb +36 -40
  417. data/spec/models/spree/line_item_spec.rb +92 -48
  418. data/spec/models/spree/option_type_spec.rb +1 -1
  419. data/spec/models/spree/option_value_spec.rb +1 -1
  420. data/spec/models/spree/order/address_spec.rb +1 -1
  421. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  422. data/spec/models/spree/order/checkout_spec.rb +55 -48
  423. data/spec/models/spree/order/finalizing_spec.rb +8 -9
  424. data/spec/models/spree/order/payment_spec.rb +20 -20
  425. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  426. data/spec/models/spree/order/state_machine_spec.rb +40 -131
  427. data/spec/models/spree/order/tax_spec.rb +11 -12
  428. data/spec/models/spree/order/totals_spec.rb +3 -3
  429. data/spec/models/spree/order/updating_spec.rb +2 -2
  430. data/spec/models/spree/order/validations_spec.rb +2 -2
  431. data/spec/models/spree/order_cancellations_spec.rb +1 -1
  432. data/spec/models/spree/order_capturing_spec.rb +1 -1
  433. data/spec/models/spree/order_contents_spec.rb +10 -11
  434. data/spec/models/spree/order_inventory_spec.rb +11 -11
  435. data/spec/models/spree/order_merger_spec.rb +1 -0
  436. data/spec/models/spree/order_shipping_spec.rb +8 -10
  437. data/spec/models/spree/order_spec.rb +137 -124
  438. data/spec/models/spree/order_stock_location_spec.rb +2 -2
  439. data/spec/models/spree/order_update_attributes_spec.rb +6 -10
  440. data/spec/models/spree/order_updater_spec.rb +4 -8
  441. data/spec/models/spree/payment_create_spec.rb +11 -12
  442. data/spec/models/spree/payment_method/store_credit_spec.rb +10 -6
  443. data/spec/models/spree/payment_method_spec.rb +4 -5
  444. data/spec/models/spree/payment_spec.rb +61 -69
  445. data/spec/models/spree/permission_sets/base_spec.rb +1 -1
  446. data/spec/models/spree/permission_sets/configuration_display.rb +0 -1
  447. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -1
  448. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -1
  449. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -1
  450. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -1
  451. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -1
  452. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -1
  453. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -1
  454. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -1
  455. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -1
  456. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -1
  457. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -1
  458. data/spec/models/spree/permission_sets/restricted_stock_transfer_display_spec.rb +0 -1
  459. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +6 -6
  460. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -1
  461. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -1
  462. data/spec/models/spree/permission_sets/stock_transfer_display_spec.rb +0 -1
  463. data/spec/models/spree/permission_sets/stock_transfer_management_spec.rb +0 -2
  464. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -1
  465. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -1
  466. data/spec/models/spree/preference_spec.rb +1 -4
  467. data/spec/models/spree/preferences/configuration_spec.rb +2 -7
  468. data/spec/models/spree/preferences/preferable_spec.rb +13 -24
  469. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  470. data/spec/models/spree/preferences/static_model_preferences_spec.rb +5 -6
  471. data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -6
  472. data/spec/models/spree/preferences/store_spec.rb +2 -3
  473. data/spec/models/spree/price_spec.rb +6 -6
  474. data/spec/models/spree/product/scopes_spec.rb +20 -20
  475. data/spec/models/spree/product_duplicator_spec.rb +16 -29
  476. data/spec/models/spree/product_filter_spec.rb +2 -2
  477. data/spec/models/spree/product_spec.rb +53 -20
  478. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +10 -12
  479. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +4 -4
  480. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +9 -9
  481. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  482. data/spec/models/spree/promotion/rules/first_order_spec.rb +10 -10
  483. data/spec/models/spree/promotion/rules/item_total_spec.rb +63 -19
  484. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  485. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  486. data/spec/models/spree/promotion/rules/taxon_spec.rb +4 -4
  487. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -4
  488. data/spec/models/spree/promotion/rules/user_spec.rb +7 -7
  489. data/spec/models/spree/promotion_builder_spec.rb +10 -8
  490. data/spec/models/spree/promotion_category_spec.rb +1 -1
  491. data/spec/models/spree/promotion_code/code_builder_spec.rb +1 -3
  492. data/spec/models/spree/promotion_code_spec.rb +8 -7
  493. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  494. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  495. data/spec/models/spree/promotion_handler/page_spec.rb +6 -7
  496. data/spec/models/spree/promotion_rule_spec.rb +1 -2
  497. data/spec/models/spree/promotion_spec.rb +25 -21
  498. data/spec/models/spree/refund_spec.rb +8 -11
  499. data/spec/models/spree/reimbursement/credit_spec.rb +2 -2
  500. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +6 -4
  501. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  502. data/spec/models/spree/reimbursement_performer_spec.rb +2 -2
  503. data/spec/models/spree/reimbursement_spec.rb +9 -11
  504. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +4 -5
  505. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -2
  506. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -3
  507. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +4 -4
  508. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +1 -1
  509. data/spec/models/spree/return_authorization_spec.rb +18 -21
  510. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +7 -7
  511. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -1
  512. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -1
  513. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  514. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  515. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -2
  516. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +3 -5
  517. data/spec/models/spree/return_item_spec.rb +29 -31
  518. data/spec/models/spree/returns_calculator_spec.rb +1 -1
  519. data/spec/models/spree/shipment_spec.rb +59 -43
  520. data/spec/models/spree/shipping_calculator_spec.rb +3 -3
  521. data/spec/models/spree/shipping_manifest_spec.rb +8 -7
  522. data/spec/models/spree/shipping_method_spec.rb +149 -24
  523. data/spec/models/spree/shipping_rate_spec.rb +116 -76
  524. data/spec/models/spree/shipping_rate_tax_spec.rb +83 -0
  525. data/spec/models/spree/state_spec.rb +2 -2
  526. data/spec/models/spree/stock/availability_validator_spec.rb +4 -4
  527. data/spec/models/spree/stock/coordinator_spec.rb +33 -49
  528. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  529. data/spec/models/spree/stock/estimator_spec.rb +83 -54
  530. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -3
  531. data/spec/models/spree/stock/package_spec.rb +27 -10
  532. data/spec/models/spree/stock/packer_spec.rb +4 -4
  533. data/spec/models/spree/stock/prioritizer_spec.rb +1 -1
  534. data/spec/models/spree/stock/quantifier_spec.rb +2 -6
  535. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  536. data/spec/models/spree/stock/splitter/base_spec.rb +1 -2
  537. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +1 -3
  538. data/spec/models/spree/stock/splitter/weight_spec.rb +3 -3
  539. data/spec/models/spree/stock_item_spec.rb +16 -16
  540. data/spec/models/spree/stock_location_spec.rb +6 -8
  541. data/spec/models/spree/stock_movement_spec.rb +1 -1
  542. data/spec/models/spree/stock_transfer_spec.rb +1 -3
  543. data/spec/models/spree/store_credit_category_spec.rb +1 -1
  544. data/spec/models/spree/store_credit_event_spec.rb +3 -5
  545. data/spec/models/spree/store_credit_spec.rb +24 -23
  546. data/spec/models/spree/store_spec.rb +21 -2
  547. data/spec/models/spree/tax/item_adjuster_spec.rb +74 -0
  548. data/spec/models/spree/tax/order_adjuster_spec.rb +49 -0
  549. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +50 -0
  550. data/spec/models/spree/tax/tax_location_spec.rb +68 -0
  551. data/spec/models/spree/tax/taxation_integration_spec.rb +787 -0
  552. data/spec/models/spree/tax_category_spec.rb +2 -2
  553. data/spec/models/spree/tax_rate_spec.rb +185 -536
  554. data/spec/models/spree/taxon_spec.rb +69 -5
  555. data/spec/models/spree/taxonomy_spec.rb +2 -3
  556. data/spec/models/spree/tracker_spec.rb +1 -1
  557. data/spec/models/spree/transfer_item_spec.rb +1 -1
  558. data/spec/models/spree/unit_cancel_spec.rb +9 -14
  559. data/spec/models/spree/user_spec.rb +19 -24
  560. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +1 -1
  561. data/spec/models/spree/variant/pricer_spec.rb +48 -0
  562. data/spec/models/spree/variant/pricing_options_spec.rb +106 -0
  563. data/spec/models/spree/variant/scopes_spec.rb +31 -8
  564. data/spec/models/spree/variant_property_rule_spec.rb +1 -1
  565. data/spec/models/spree/variant_spec.rb +166 -52
  566. data/spec/models/spree/zone_spec.rb +135 -10
  567. data/spec/support/big_decimal.rb +1 -1
  568. data/spec/support/concerns/working_factories.rb +2 -2
  569. data/spec/support/dummy_ability.rb +0 -1
  570. metadata +55 -44
  571. data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
  572. data/lib/spree/migration_helpers.rb +0 -19
  573. data/vendor/assets/stylesheets/skeleton.css +0 -242
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Promotion::Rules::User, :type => :model do
3
+ describe Spree::Promotion::Rules::User, type: :model do
4
4
  let(:rule) { Spree::Promotion::Rules::User.new }
5
5
 
6
6
  context "#eligible?(order)" do
@@ -13,24 +13,24 @@ describe Spree::Promotion::Rules::User, :type => :model do
13
13
  it "should be eligible if users include user placing the order" do
14
14
  user = mock_model(Spree::LegacyUser)
15
15
  users = [user, mock_model(Spree::LegacyUser)]
16
- allow(rule).to receive_messages(:users => users)
17
- allow(order).to receive_messages(:user => user)
16
+ allow(rule).to receive_messages(users: users)
17
+ allow(order).to receive_messages(user: user)
18
18
 
19
19
  expect(rule).to be_eligible(order)
20
20
  end
21
21
 
22
22
  it "should not be eligible if user placing the order is not listed" do
23
- allow(order).to receive_messages(:user => mock_model(Spree::LegacyUser))
23
+ allow(order).to receive_messages(user: mock_model(Spree::LegacyUser))
24
24
  users = [mock_model(Spree::LegacyUser), mock_model(Spree::LegacyUser)]
25
- allow(rule).to receive_messages(:users => users)
25
+ allow(rule).to receive_messages(users: users)
26
26
 
27
27
  expect(rule).not_to be_eligible(order)
28
28
  end
29
29
 
30
30
  # Regression test for https://github.com/spree/spree/issues/3885
31
31
  it "can assign to user_ids" do
32
- user1 = Spree::LegacyUser.create!(:email => "test1@example.com")
33
- user2 = Spree::LegacyUser.create!(:email => "test2@example.com")
32
+ user1 = Spree::LegacyUser.create!(email: "test1@example.com")
33
+ user2 = Spree::LegacyUser.create!(email: "test2@example.com")
34
34
  rule.user_ids = "#{user1.id}, #{user2.id}"
35
35
  end
36
36
  end
@@ -5,13 +5,15 @@ describe Spree::PromotionBuilder do
5
5
  let(:base_code) { 'abc' }
6
6
  let(:number_of_codes) { 1 }
7
7
  let(:promotion_attrs) { { name: 'some promo' } }
8
- let(:builder) { Spree::PromotionBuilder.new(
9
- {
10
- base_code: base_code,
11
- number_of_codes: number_of_codes
12
- },
13
- promotion_attrs,
14
- ) }
8
+ let(:builder) {
9
+ Spree::PromotionBuilder.new(
10
+ {
11
+ base_code: base_code,
12
+ number_of_codes: number_of_codes
13
+ },
14
+ promotion_attrs
15
+ )
16
+ }
15
17
 
16
18
  describe '#initialize' do
17
19
  subject { builder }
@@ -25,7 +27,7 @@ describe Spree::PromotionBuilder do
25
27
  end
26
28
 
27
29
  describe '#valid?' do
28
- subject { builder.valid? }
30
+ subject { builder.valid? }
29
31
 
30
32
  it 'is true' do
31
33
  expect(subject).to be
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::PromotionCategory, :type => :model do
3
+ describe Spree::PromotionCategory, type: :model do
4
4
  describe 'validation' do
5
5
  let(:name) { 'Nom' }
6
6
  subject { Spree::PromotionCategory.new name: name }
@@ -39,7 +39,7 @@ describe Spree::PromotionCode::CodeBuilder do
39
39
 
40
40
  it "builds codes with the same base prefix" do
41
41
  subject
42
- values = builder.promotion.codes.map &:value
42
+ values = builder.promotion.codes.map(&:value)
43
43
  expect(values.all? { |val| val.starts_with?("#{base_code}_") }).to be true
44
44
  end
45
45
 
@@ -72,8 +72,6 @@ describe Spree::PromotionCode::CodeBuilder do
72
72
  expect(builder.promotion.codes.map(&:value).uniq.size).to eq(num_codes)
73
73
  end
74
74
  end
75
-
76
75
  end
77
76
  end
78
-
79
77
  end
@@ -142,13 +142,14 @@ RSpec.describe Spree::PromotionCode do
142
142
  :promotion,
143
143
  :with_order_adjustment,
144
144
  code: "discount",
145
- per_code_usage_limit: 1
145
+ per_code_usage_limit: 1,
146
+ weighted_order_adjustment_amount: 10
146
147
  )
147
148
  end
148
149
  let(:code) { promotion.codes.first }
149
150
  let(:order) do
150
- FactoryGirl.create(:order_with_line_items).tap do |order|
151
- FactoryGirl.create(:payment, amount: order.total, order: order)
151
+ FactoryGirl.create(:order_with_line_items, line_items_price: 40, shipment_cost: 0).tap do |order|
152
+ FactoryGirl.create(:payment, amount: 30, order: order)
152
153
  promotion.activate(order: order, promotion_code: code)
153
154
  end
154
155
  end
@@ -156,8 +157,8 @@ RSpec.describe Spree::PromotionCode do
156
157
  before do
157
158
  order.next! until order.confirm?
158
159
 
159
- FactoryGirl.create(:order_with_line_items).tap do |order|
160
- FactoryGirl.create(:payment, amount: order.total, order: order)
160
+ FactoryGirl.create(:order_with_line_items, line_items_price: 40, shipment_cost: 0).tap do |order|
161
+ FactoryGirl.create(:payment, amount: 30, order: order)
161
162
  promotion.activate(order: order, promotion_code: code)
162
163
  order.next! until order.confirm?
163
164
  order.complete!
@@ -173,10 +174,10 @@ RSpec.describe Spree::PromotionCode do
173
174
  order.complete
174
175
  }.to change(order, :promo_total).by(10)
175
176
  end
176
- it "adjusts the total" do
177
+ it "increases the total to remove the promo" do
177
178
  expect{
178
179
  order.complete
179
- }.to change(order, :total).by(10)
180
+ }.to change(order, :total).from(30).to(40)
180
181
  end
181
182
  it "resets the state of the order" do
182
183
  expect{
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module PromotionHandler
5
- describe Cart, :type => :model do
5
+ describe Cart, type: :model do
6
6
  let(:line_item) { create(:line_item) }
7
7
  let(:order) { line_item.order }
8
8
  let(:promotion) { create(:promotion, apply_automatically: true) }
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module PromotionHandler
5
- describe Coupon, :type => :model do
5
+ describe Coupon, type: :model do
6
6
  let(:order) { double("Order", coupon_code: "10off").as_null_object }
7
7
 
8
8
  subject { Coupon.new(order) }
@@ -17,7 +17,6 @@ module Spree
17
17
  expect(adjustable.adjustments.map(&:promotion_code)).to include(promotion_code)
18
18
  end
19
19
 
20
-
21
20
  it "returns self in apply" do
22
21
  expect(subject.apply).to be_a Coupon
23
22
  end
@@ -85,11 +84,11 @@ module Spree
85
84
  end
86
85
 
87
86
  context "with a per-item adjustment action" do
88
- let(:order) { create(:order_with_line_items, :line_items_count => 3) }
87
+ let(:order) { create(:order_with_line_items, line_items_count: 3) }
89
88
 
90
89
  context "right coupon given" do
91
90
  context "with correct coupon code casing" do
92
- before { allow(order).to receive_messages :coupon_code => "10off" }
91
+ before { allow(order).to receive_messages coupon_code: "10off" }
93
92
 
94
93
  it "successfully activates promo" do
95
94
  expect(order.total).to eq(130)
@@ -113,7 +112,7 @@ module Spree
113
112
 
114
113
  # Regression test for https://github.com/spree/spree/issues/4211
115
114
  context "with incorrect coupon code casing" do
116
- before { allow(order).to receive_messages :coupon_code => "10OFF" }
115
+ before { allow(order).to receive_messages coupon_code: "10OFF" }
117
116
  it "successfully activates promo" do
118
117
  expect(order.total).to eq(130)
119
118
  subject.apply
@@ -132,10 +131,10 @@ module Spree
132
131
  let!(:order) { Order.create }
133
132
 
134
133
  before do
135
- allow(order).to receive_messages :coupon_code => "10off"
134
+ allow(order).to receive_messages coupon_code: "10off"
136
135
  calculator = Calculator::FlatRate.new(preferred_amount: 10)
137
136
  general_promo = create(:promotion, name: "General Promo")
138
- general_action = Promotion::Actions::CreateItemAdjustments.create(promotion: general_promo, calculator: calculator)
137
+ Promotion::Actions::CreateItemAdjustments.create(promotion: general_promo, calculator: calculator)
139
138
 
140
139
  order.contents.add create(:variant)
141
140
  end
@@ -155,9 +154,9 @@ module Spree
155
154
  context "with a free-shipping adjustment action" do
156
155
  let!(:action) { Promotion::Actions::FreeShipping.create!(promotion: promotion) }
157
156
  context "right coupon code given" do
158
- let(:order) { create(:order_with_line_items, :line_items_count => 3) }
157
+ let(:order) { create(:order_with_line_items, line_items_count: 3) }
159
158
 
160
- before { allow(order).to receive_messages :coupon_code => "10off" }
159
+ before { allow(order).to receive_messages coupon_code: "10off" }
161
160
 
162
161
  it "successfully activates promo" do
163
162
  expect(order.total).to eq(130)
@@ -187,10 +186,10 @@ module Spree
187
186
 
188
187
  before do
189
188
  allow(order).to receive_messages({
190
- :coupon_code => "10off",
189
+ coupon_code: "10off",
191
190
  # These need to be here so that promotion adjustment "wins"
192
- :item_total => 50,
193
- :ship_total => 10
191
+ item_total: 50,
192
+ ship_total: 10
194
193
  })
195
194
  end
196
195
 
@@ -252,25 +251,26 @@ module Spree
252
251
  end
253
252
 
254
253
  context "for an order with taxable line items" do
254
+ let(:store) { create(:store) }
255
255
  before(:each) do
256
256
  @country = create(:country)
257
- @zone = create(:zone, :name => "Country Zone", :default_tax => true, :zone_members => [])
258
- @zone.zone_members.create(:zoneable => @country)
259
- @category = Spree::TaxCategory.create :name => "Taxable Foo"
257
+ @zone = create(:zone, name: "Country Zone", default_tax: true, zone_members: [])
258
+ @zone.zone_members.create(zoneable: @country)
259
+ @category = Spree::TaxCategory.create name: "Taxable Foo"
260
260
  @rate1 = Spree::TaxRate.create(
261
- :amount => 0.10,
262
- :calculator => Spree::Calculator::DefaultTax.create,
263
- :tax_category => @category,
264
- :zone => @zone
261
+ amount: 0.10,
262
+ calculator: Spree::Calculator::DefaultTax.create,
263
+ tax_category: @category,
264
+ zone: @zone
265
265
  )
266
266
 
267
- @order = Spree::Order.create!
268
- allow(@order).to receive_messages :coupon_code => "10off"
267
+ @order = Spree::Order.create!(store: store)
268
+ allow(@order).to receive_messages coupon_code: "10off"
269
269
  end
270
270
  context "and the product price is less than promo discount" do
271
271
  before(:each) do
272
- 3.times do |i|
273
- taxable = create(:product, :tax_category => @category, :price => 9.0)
272
+ 3.times do |_i|
273
+ taxable = create(:product, tax_category: @category, price: 9.0)
274
274
  @order.contents.add(taxable.master, 1)
275
275
  end
276
276
  end
@@ -287,8 +287,8 @@ module Spree
287
287
  end
288
288
  context "and the product price is greater than promo discount" do
289
289
  before(:each) do
290
- 3.times do |i|
291
- taxable = create(:product, :tax_category => @category, :price => 11.0)
290
+ 3.times do |_i|
291
+ taxable = create(:product, tax_category: @category, price: 11.0)
292
292
  @order.contents.add(taxable.master, 2)
293
293
  end
294
294
  end
@@ -311,9 +311,9 @@ module Spree
311
311
  calculator: twnty_off_calc)
312
312
 
313
313
  allow(@order).to receive(:coupon_code).and_call_original
314
- allow(@order).to receive_messages :coupon_code => "20off"
315
- 3.times do |i|
316
- taxable = create(:product, :tax_category => @category, :price => 10.0)
314
+ allow(@order).to receive_messages coupon_code: "20off"
315
+ 3.times do |_i|
316
+ taxable = create(:product, tax_category: @category, price: 10.0)
317
317
  @order.contents.add(taxable.master, 2)
318
318
  end
319
319
  end
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module PromotionHandler
5
- describe Page, :type => :model do
6
- let(:order) { create(:order_with_line_items, :line_items_count => 1) }
5
+ describe Page, type: :model do
6
+ let(:order) { create(:order_with_line_items, line_items_count: 1) }
7
7
 
8
- let(:promotion) { Promotion.create(name: "10% off", :path => '10off') }
8
+ let(:promotion) { Promotion.create(name: "10% off", path: '10off') }
9
9
  before do
10
10
  calculator = Calculator::FlatPercentItemTotal.new(preferred_flat_percent: 10)
11
- action = Promotion::Actions::CreateItemAdjustments.create(:calculator => calculator)
11
+ action = Promotion::Actions::CreateItemAdjustments.create(calculator: calculator)
12
12
  promotion.actions << action
13
13
  end
14
14
 
@@ -21,8 +21,8 @@ module Spree
21
21
  context "when promotion is expired" do
22
22
  before do
23
23
  promotion.update_columns(
24
- :starts_at => 1.week.ago,
25
- :expires_at => 1.day.ago
24
+ starts_at: 1.week.ago,
25
+ expires_at: 1.day.ago
26
26
  )
27
27
  end
28
28
 
@@ -41,4 +41,3 @@ module Spree
41
41
  end
42
42
  end
43
43
  end
44
-
@@ -2,11 +2,10 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  describe Spree::PromotionRule, type: :model do
5
-
6
5
  class BadTestRule < Spree::PromotionRule; end
7
6
 
8
7
  class TestRule < Spree::PromotionRule
9
- def eligible?(promotable, options = {})
8
+ def eligible?(_promotable, _options = {})
10
9
  true
11
10
  end
12
11
  end
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Promotion, :type => :model do
3
+ describe Spree::Promotion, type: :model do
4
4
  let(:promotion) { Spree::Promotion.new }
5
5
 
6
6
  describe "validations" do
7
7
  before :each do
8
- @valid_promotion = Spree::Promotion.new :name => "A promotion"
8
+ @valid_promotion = Spree::Promotion.new name: "A promotion"
9
9
  end
10
10
 
11
11
  it "valid_promotion is valid" do
@@ -38,7 +38,7 @@ describe Spree::Promotion, :type => :model do
38
38
 
39
39
  describe ".advertised" do
40
40
  let(:promotion) { create(:promotion) }
41
- let(:advertised_promotion) { create(:promotion, :advertise => true) }
41
+ let(:advertised_promotion) { create(:promotion, advertise: true) }
42
42
 
43
43
  it "only shows advertised promotions" do
44
44
  advertised = Spree::Promotion.advertised
@@ -76,7 +76,7 @@ describe Spree::Promotion, :type => :model do
76
76
  end
77
77
 
78
78
  describe "#save" do
79
- let(:promotion) { Spree::Promotion.create(:name => "delete me") }
79
+ let(:promotion) { Spree::Promotion.create(name: "delete me") }
80
80
 
81
81
  before(:each) do
82
82
  promotion.actions << Spree::Promotion::Actions::CreateAdjustment.new
@@ -105,7 +105,7 @@ describe Spree::Promotion, :type => :model do
105
105
 
106
106
  @user = create(:user)
107
107
  @order = create(:order, user: @user, created_at: DateTime.current)
108
- @payload = { :order => @order, :user => @user }
108
+ @payload = { order: @order, user: @user }
109
109
  end
110
110
 
111
111
  it "should check path if present" do
@@ -163,7 +163,6 @@ describe Spree::Promotion, :type => :model do
163
163
  expect(promotion.orders.reload.to_a).to eql [@order]
164
164
  end
165
165
  end
166
-
167
166
  end
168
167
 
169
168
  context "when there is a code" do
@@ -370,13 +369,13 @@ describe Spree::Promotion, :type => :model do
370
369
  create(
371
370
  :promotion,
372
371
  name: "Foo",
373
- code: "XXX",
372
+ code: "XXX"
374
373
  )
375
374
  end
376
375
 
377
376
  let!(:action) do
378
377
  calculator = Spree::Calculator::FlatRate.new
379
- action_params = { :promotion => promotion, :calculator => calculator }
378
+ action_params = { promotion: promotion, calculator: calculator }
380
379
  action = Spree::Promotion::Actions::CreateAdjustment.create(action_params)
381
380
  promotion.actions << action
382
381
  action
@@ -538,7 +537,7 @@ describe Spree::Promotion, :type => :model do
538
537
  end
539
538
 
540
539
  it "true if there are no applicable rules" do
541
- promotion.promotion_rules = [stub_model(Spree::PromotionRule, :eligible? => true, :applicable? => false)]
540
+ promotion.promotion_rules = [stub_model(Spree::PromotionRule, eligible?: true, applicable?: false)]
542
541
  allow(promotion.promotion_rules).to receive(:for).and_return([])
543
542
  expect(promotion.eligible_rules(promotable)).to eq []
544
543
  end
@@ -586,14 +585,14 @@ describe Spree::Promotion, :type => :model do
586
585
  end
587
586
 
588
587
  context "with 'any' match policy" do
589
- let(:promotion) { Spree::Promotion.create(:name => "Promo", :match_policy => 'any') }
588
+ let(:promotion) { Spree::Promotion.create(name: "Promo", match_policy: 'any') }
590
589
  let(:promotable) { double('Promotable') }
591
590
 
592
591
  it "should have eligible rules if any of the rules are eligible" do
593
- allow_any_instance_of(Spree::PromotionRule).to receive_messages(:applicable? => true)
594
- true_rule = Spree::PromotionRule.create(:promotion => promotion)
595
- allow(true_rule).to receive_messages(:eligible? => true)
596
- allow(promotion).to receive_messages(:rules => [true_rule])
592
+ allow_any_instance_of(Spree::PromotionRule).to receive_messages(applicable?: true)
593
+ true_rule = Spree::PromotionRule.create(promotion: promotion)
594
+ allow(true_rule).to receive_messages(eligible?: true)
595
+ allow(promotion).to receive_messages(rules: [true_rule])
597
596
  allow(promotion).to receive_message_chain(:rules, :for).and_return([true_rule])
598
597
  expect(promotion.eligible_rules(promotable)).to eq [true_rule]
599
598
  end
@@ -620,7 +619,7 @@ describe Spree::Promotion, :type => :model do
620
619
 
621
620
  describe '#line_item_actionable?' do
622
621
  let(:order) { double Spree::Order }
623
- let(:line_item) { double Spree::LineItem}
622
+ let(:line_item) { double Spree::LineItem }
624
623
  let(:true_rule) { double Spree::PromotionRule, eligible?: true, applicable?: true, actionable?: true }
625
624
  let(:false_rule) { double Spree::PromotionRule, eligible?: true, applicable?: true, actionable?: false }
626
625
  let(:rules) { [] }
@@ -643,12 +642,12 @@ describe Spree::Promotion, :type => :model do
643
642
 
644
643
  context 'when all rules allow action on the line item' do
645
644
  let(:rules) { [true_rule] }
646
- it { is_expected.to be}
645
+ it { is_expected.to be }
647
646
  end
648
647
 
649
648
  context 'when at least one rule does not allow action on the line item' do
650
649
  let(:rules) { [true_rule, false_rule] }
651
- it { is_expected.not_to be}
650
+ it { is_expected.not_to be }
652
651
  end
653
652
  end
654
653
 
@@ -662,7 +661,7 @@ describe Spree::Promotion, :type => :model do
662
661
 
663
662
  context 'when no rules allow action on the line item' do
664
663
  let(:rules) { [false_rule] }
665
- it { is_expected.not_to be}
664
+ it { is_expected.not_to be }
666
665
  end
667
666
  end
668
667
  end
@@ -692,7 +691,7 @@ describe Spree::Promotion, :type => :model do
692
691
  # admin form posts the code and path as empty string
693
692
  describe "normalize blank values for path" do
694
693
  it "will save blank value as nil value instead" do
695
- promotion = Spree::Promotion.create(:name => "A promotion", :path => "")
694
+ promotion = Spree::Promotion.create(name: "A promotion", path: "")
696
695
  expect(promotion.path).to be_nil
697
696
  end
698
697
  end
@@ -740,6 +739,11 @@ describe Spree::Promotion, :type => :model do
740
739
 
741
740
  context 'when the order is not complete' do
742
741
  let(:order) { create :order, user: user }
742
+
743
+ # The before clause above sets the completed at
744
+ # value for this order
745
+ before { order.update completed_at: nil }
746
+
743
747
  it { is_expected.to be false }
744
748
  end
745
749
  end
@@ -764,13 +768,13 @@ describe Spree::Promotion, :type => :model do
764
768
  order.update!
765
769
 
766
770
  expect(line_item.adjustments.size).to eq(1)
767
- expect(order.adjustment_total).to eq -5
771
+ expect(order.adjustment_total).to eq(-5)
768
772
 
769
773
  other_line_item = order.contents.add(variant, 1, currency: order.currency)
770
774
 
771
775
  expect(other_line_item).not_to eq line_item
772
776
  expect(other_line_item.adjustments.size).to eq(1)
773
- expect(order.adjustment_total).to eq -10
777
+ expect(order.adjustment_total).to eq(-10)
774
778
  end
775
779
  end
776
780
  end
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Refund, :type => :model do
4
-
3
+ describe Spree::Refund, type: :model do
5
4
  describe 'create' do
6
5
  let(:amount) { 100.0 }
7
6
  let(:amount_in_cents) { amount * 100 }
@@ -9,7 +8,7 @@ describe Spree::Refund, :type => :model do
9
8
  let(:authorization) { generate(:refund_transaction_id) }
10
9
 
11
10
  let(:payment) { create(:payment, amount: payment_amount, payment_method: payment_method) }
12
- let(:payment_amount) { amount*2 }
11
+ let(:payment_amount) { amount * 2 }
13
12
  let(:payment_method) { create(:credit_card_payment_method) }
14
13
 
15
14
  let(:refund_reason) { create(:refund_reason) }
@@ -32,7 +31,7 @@ describe Spree::Refund, :type => :model do
32
31
  before do
33
32
  allow(payment.payment_method)
34
33
  .to receive(:credit)
35
- .with(amount_in_cents, payment.source, payment.transaction_id, {originator: an_instance_of(Spree::Refund)})
34
+ .with(amount_in_cents, payment.source, payment.transaction_id, { originator: an_instance_of(Spree::Refund) })
36
35
  .and_return(gateway_response)
37
36
  end
38
37
 
@@ -60,7 +59,6 @@ describe Spree::Refund, :type => :model do
60
59
  expect(payment.payment_method).not_to receive(:credit)
61
60
  subject
62
61
  end
63
-
64
62
  end
65
63
 
66
64
  context "processing is successful" do
@@ -95,7 +93,6 @@ describe Spree::Refund, :type => :model do
95
93
  expect(payment.order.updater).to receive(:update)
96
94
  subject
97
95
  end
98
-
99
96
  end
100
97
 
101
98
  context "processing fails" do
@@ -117,7 +114,7 @@ describe Spree::Refund, :type => :model do
117
114
  it 'should not supply the payment source' do
118
115
  expect(payment.payment_method)
119
116
  .to receive(:credit)
120
- .with(amount * 100, payment.transaction_id, {originator: an_instance_of(Spree::Refund)})
117
+ .with(amount * 100, payment.transaction_id, { originator: an_instance_of(Spree::Refund) })
121
118
  .and_return(gateway_response)
122
119
 
123
120
  subject
@@ -132,7 +129,7 @@ describe Spree::Refund, :type => :model do
132
129
  it 'should supply the payment source' do
133
130
  expect(payment.payment_method)
134
131
  .to receive(:credit)
135
- .with(amount_in_cents, payment.source, payment.transaction_id, {originator: an_instance_of(Spree::Refund)})
132
+ .with(amount_in_cents, payment.source, payment.transaction_id, { originator: an_instance_of(Spree::Refund) })
136
133
  .and_return(gateway_response)
137
134
 
138
135
  subject
@@ -143,7 +140,7 @@ describe Spree::Refund, :type => :model do
143
140
  before do
144
141
  expect(payment.payment_method)
145
142
  .to receive(:credit)
146
- .with(amount_in_cents, payment.source, payment.transaction_id, {originator: an_instance_of(Spree::Refund)})
143
+ .with(amount_in_cents, payment.source, payment.transaction_id, { originator: an_instance_of(Spree::Refund) })
147
144
  .and_raise(ActiveMerchant::ConnectionError.new("foo", nil))
148
145
  end
149
146
 
@@ -154,7 +151,7 @@ describe Spree::Refund, :type => :model do
154
151
 
155
152
  context 'with amount too large' do
156
153
  let(:payment_amount) { 10 }
157
- let(:amount) { payment_amount*2 }
154
+ let(:amount) { payment_amount * 2 }
158
155
 
159
156
  it 'is invalid' do
160
157
  expect { subject }.to raise_error { |error|
@@ -166,7 +163,7 @@ describe Spree::Refund, :type => :model do
166
163
  end
167
164
 
168
165
  describe 'total_amount_reimbursed_for' do
169
- let(:customer_return) { reimbursement.customer_return}
166
+ let(:customer_return) { reimbursement.customer_return }
170
167
  let(:reimbursement) { create(:reimbursement) }
171
168
  let!(:default_refund_reason) { Spree::RefundReason.find_or_create_by!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false) }
172
169
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Reimbursement::Credit, :type => :model do
4
+ describe Reimbursement::Credit, type: :model do
5
5
  context 'class methods' do
6
6
  describe '.total_amount_reimbursed_for' do
7
7
  subject { Spree::Reimbursement::Credit.total_amount_reimbursed_for(reimbursement) }
@@ -9,7 +9,7 @@ module Spree
9
9
  let(:reimbursement) { create(:reimbursement) }
10
10
  let(:credit_double) { double(amount: 99.99) }
11
11
 
12
- before { allow(reimbursement).to receive(:credits).and_return([credit_double, credit_double])}
12
+ before { allow(reimbursement).to receive(:credits).and_return([credit_double, credit_double]) }
13
13
 
14
14
  it 'should sum the amounts of all of the reimbursements credits' do
15
15
  expect(subject).to eq BigDecimal.new('199.98')
@@ -1,22 +1,24 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Reimbursement::ReimbursementTypeEngine, :type => :model do
4
+ describe Reimbursement::ReimbursementTypeEngine, type: :model do
5
5
  describe '#calculate_reimbursement_types' do
6
6
  let(:return_item) { create(:return_item) }
7
- let(:return_items) { [ return_item ] }
7
+ let(:return_items) { [return_item] }
8
8
  let(:reimbursement_type_engine) { Spree::Reimbursement::ReimbursementTypeEngine.new(return_items) }
9
9
  let(:expired_reimbursement_type) { Spree::ReimbursementType::OriginalPayment }
10
10
  let(:override_reimbursement_type) { Spree::ReimbursementType::OriginalPayment.new }
11
11
  let(:preferred_reimbursement_type) { Spree::ReimbursementType::OriginalPayment.new }
12
12
  let(:calculated_reimbursement_types) { subject }
13
- let(:all_reimbursement_types) {[
13
+ let(:all_reimbursement_types) {
14
+ [
14
15
  reimbursement_type_engine.default_reimbursement_type,
15
16
  reimbursement_type_engine.exchange_reimbursement_type,
16
17
  expired_reimbursement_type,
17
18
  override_reimbursement_type,
18
19
  preferred_reimbursement_type
19
- ]}
20
+ ]
21
+ }
20
22
 
21
23
  subject { reimbursement_type_engine.calculate_reimbursement_types }
22
24
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Reimbursement::ReimbursementTypeValidator, :type => :model do
4
+ describe Reimbursement::ReimbursementTypeValidator, type: :model do
5
5
  class DummyClass
6
6
  include Spree::Reimbursement::ReimbursementTypeValidator
7
7
 
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::ReimbursementPerformer, :type => :model do
3
+ describe Spree::ReimbursementPerformer, type: :model do
4
4
  let(:reimbursement) { create(:reimbursement, return_items_count: 1) }
5
5
  let(:return_item) { reimbursement.return_items.first }
6
6
  let(:reimbursement_type) { double("ReimbursementType") }
7
- let(:reimbursement_type_hash) { { reimbursement_type => [return_item]} }
7
+ let(:reimbursement_type_hash) { { reimbursement_type => [return_item] } }
8
8
 
9
9
  before do
10
10
  expect(Spree::ReimbursementPerformer).to receive(:calculate_reimbursement_types).and_return(reimbursement_type_hash)