solidus_core 1.2.3 → 1.3.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/spree.js.coffee.erb +1 -1
  5. data/app/helpers/spree/base_helper.rb +21 -43
  6. data/app/helpers/spree/orders_helper.rb +0 -1
  7. data/app/helpers/spree/products_helper.rb +10 -12
  8. data/app/helpers/spree/taxons_helper.rb +4 -4
  9. data/app/mailers/spree/base_mailer.rb +1 -3
  10. data/app/mailers/spree/carton_mailer.rb +2 -2
  11. data/app/mailers/spree/order_mailer.rb +2 -2
  12. data/app/models/concerns/spree/adjustment_source.rb +12 -16
  13. data/app/models/concerns/spree/calculated_adjustments.rb +17 -14
  14. data/app/models/concerns/spree/default_price.rb +10 -26
  15. data/app/models/concerns/spree/display_money.rb +1 -1
  16. data/app/models/concerns/spree/ordered_property_value_list.rb +10 -12
  17. data/app/models/concerns/spree/ransackable_attributes.rb +6 -5
  18. data/app/models/concerns/spree/user_address_book.rb +87 -81
  19. data/app/models/concerns/spree/user_methods.rb +2 -2
  20. data/app/models/concerns/spree/user_payment_source.rb +12 -8
  21. data/app/models/spree/ability.rb +2 -2
  22. data/app/models/spree/address.rb +37 -38
  23. data/app/models/spree/adjustment.rb +2 -6
  24. data/app/models/spree/app_configuration.rb +60 -5
  25. data/app/models/spree/base.rb +1 -1
  26. data/app/models/spree/calculator/default_tax.rb +28 -24
  27. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
  28. data/app/models/spree/calculator/flat_rate.rb +2 -2
  29. data/app/models/spree/calculator/flexi_rate.rb +4 -4
  30. data/app/models/spree/calculator/percent_per_item.rb +8 -9
  31. data/app/models/spree/calculator/price_sack.rb +3 -3
  32. data/app/models/spree/calculator/returns/default_refund_amount.rb +11 -12
  33. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
  34. data/app/models/spree/calculator/shipping/flat_rate.rb +2 -2
  35. data/app/models/spree/calculator/shipping/flexi_rate.rb +3 -3
  36. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  37. data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
  38. data/app/models/spree/calculator/tiered_flat_rate.rb +2 -1
  39. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  40. data/app/models/spree/calculator.rb +3 -3
  41. data/app/models/spree/carton.rb +2 -2
  42. data/app/models/spree/country.rb +7 -4
  43. data/app/models/spree/credit_card.rb +26 -22
  44. data/app/models/spree/customer_return.rb +8 -7
  45. data/app/models/spree/exchange.rb +1 -9
  46. data/app/models/spree/gateway/bogus.rb +31 -31
  47. data/app/models/spree/gateway/bogus_simple.rb +6 -8
  48. data/app/models/spree/gateway.rb +9 -15
  49. data/app/models/spree/image.rb +3 -3
  50. data/app/models/spree/inventory_unit.rb +23 -23
  51. data/app/models/spree/item_adjustments.rb +3 -2
  52. data/app/models/spree/legacy_user.rb +1 -5
  53. data/app/models/spree/line_item.rb +95 -84
  54. data/app/models/spree/option_type.rb +1 -1
  55. data/app/models/spree/option_value.rb +3 -1
  56. data/app/models/spree/order/checkout.rb +45 -44
  57. data/app/models/spree/order/payments.rb +42 -45
  58. data/app/models/spree/order.rb +70 -75
  59. data/app/models/spree/order_cancellations.rb +4 -4
  60. data/app/models/spree/order_capturing.rb +3 -2
  61. data/app/models/spree/order_contents.rb +61 -59
  62. data/app/models/spree/order_inventory.rb +59 -54
  63. data/app/models/spree/order_mutex.rb +0 -1
  64. data/app/models/spree/order_shipping.rb +8 -9
  65. data/app/models/spree/order_stock_location.rb +3 -3
  66. data/app/models/spree/order_update_attributes.rb +0 -2
  67. data/app/models/spree/order_updater.rb +11 -24
  68. data/app/models/spree/payment/processing.rb +26 -37
  69. data/app/models/spree/payment.rb +68 -71
  70. data/app/models/spree/payment_method/check.rb +2 -2
  71. data/app/models/spree/payment_method/store_credit.rb +6 -7
  72. data/app/models/spree/payment_method.rb +11 -8
  73. data/app/models/spree/preferences/configuration.rb +2 -2
  74. data/app/models/spree/preferences/preferable.rb +1 -1
  75. data/app/models/spree/preferences/preferable_class_methods.rb +1 -1
  76. data/app/models/spree/preferences/scoped_store.rb +6 -5
  77. data/app/models/spree/preferences/static_model_preferences.rb +1 -1
  78. data/app/models/spree/preferences/statically_configurable.rb +2 -2
  79. data/app/models/spree/preferences/store.rb +2 -6
  80. data/app/models/spree/price.rb +17 -19
  81. data/app/models/spree/product/scopes.rb +18 -17
  82. data/app/models/spree/product.rb +28 -11
  83. data/app/models/spree/product_property.rb +2 -0
  84. data/app/models/spree/product_scope/scopes.rb +22 -22
  85. data/app/models/spree/promotion/actions/create_adjustment.rb +3 -4
  86. data/app/models/spree/promotion/actions/create_item_adjustments.rb +8 -8
  87. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +3 -3
  88. data/app/models/spree/promotion/actions/free_shipping.rb +4 -4
  89. data/app/models/spree/promotion/rules/first_order.rb +7 -6
  90. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +2 -3
  91. data/app/models/spree/promotion/rules/item_total.rb +5 -2
  92. data/app/models/spree/promotion/rules/nth_order.rb +3 -4
  93. data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
  94. data/app/models/spree/promotion/rules/option_value.rb +1 -2
  95. data/app/models/spree/promotion/rules/product.rb +4 -4
  96. data/app/models/spree/promotion/rules/taxon.rb +5 -5
  97. data/app/models/spree/promotion/rules/user.rb +1 -1
  98. data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
  99. data/app/models/spree/promotion.rb +8 -8
  100. data/app/models/spree/promotion_action.rb +1 -1
  101. data/app/models/spree/promotion_builder.rb +2 -2
  102. data/app/models/spree/promotion_chooser.rb +1 -0
  103. data/app/models/spree/promotion_code/code_builder.rb +3 -3
  104. data/app/models/spree/promotion_handler/cart.rb +17 -16
  105. data/app/models/spree/promotion_handler/coupon.rb +10 -14
  106. data/app/models/spree/promotion_handler/page.rb +4 -4
  107. data/app/models/spree/promotion_rule.rb +4 -3
  108. data/app/models/spree/prototype.rb +0 -1
  109. data/app/models/spree/refund.rb +3 -3
  110. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
  111. data/app/models/spree/reimbursement.rb +3 -5
  112. data/app/models/spree/reimbursement_performer.rb +0 -5
  113. data/app/models/spree/reimbursement_tax_calculator.rb +2 -7
  114. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  115. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  116. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +3 -3
  117. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  118. data/app/models/spree/reimbursement_type.rb +1 -1
  119. data/app/models/spree/return_authorization.rb +38 -37
  120. data/app/models/spree/return_item/eligibility_validator/default.rb +4 -4
  121. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -1
  122. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -1
  123. data/app/models/spree/return_item.rb +24 -23
  124. data/app/models/spree/returns_calculator.rb +1 -2
  125. data/app/models/spree/shipment.rb +80 -74
  126. data/app/models/spree/shipping_calculator.rb +4 -5
  127. data/app/models/spree/shipping_manifest.rb +3 -4
  128. data/app/models/spree/shipping_method.rb +54 -23
  129. data/app/models/spree/shipping_method_stock_location.rb +4 -0
  130. data/app/models/spree/shipping_rate.rb +24 -29
  131. data/app/models/spree/shipping_rate_tax.rb +41 -0
  132. data/app/models/spree/state.rb +1 -1
  133. data/app/models/spree/state_change.rb +1 -1
  134. data/app/models/spree/stock/availability_validator.rb +2 -2
  135. data/app/models/spree/stock/coordinator.rb +12 -13
  136. data/app/models/spree/stock/differentiator.rb +1 -0
  137. data/app/models/spree/stock/estimator.rb +18 -25
  138. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  139. data/app/models/spree/stock/package.rb +19 -9
  140. data/app/models/spree/stock/packer.rb +2 -3
  141. data/app/models/spree/stock/prioritizer.rb +3 -2
  142. data/app/models/spree/stock/quantifier.rb +2 -3
  143. data/app/models/spree/stock/shipping_rate_selector.rb +0 -1
  144. data/app/models/spree/stock/shipping_rate_sorter.rb +0 -1
  145. data/app/models/spree/stock/splitter/backordered.rb +0 -2
  146. data/app/models/spree/stock/splitter/base.rb +3 -2
  147. data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
  148. data/app/models/spree/stock/splitter/weight.rb +2 -2
  149. data/app/models/spree/stock_item.rb +36 -37
  150. data/app/models/spree/stock_location.rb +17 -13
  151. data/app/models/spree/stock_movement.rb +1 -3
  152. data/app/models/spree/stock_transfer.rb +8 -8
  153. data/app/models/spree/store.rb +6 -0
  154. data/app/models/spree/store_credit.rb +24 -24
  155. data/app/models/spree/store_credit_category.rb +1 -2
  156. data/app/models/spree/tax/item_adjuster.rb +37 -0
  157. data/app/models/spree/tax/order_adjuster.rb +38 -0
  158. data/app/models/spree/tax/shipping_rate_taxer.rb +31 -0
  159. data/app/models/spree/tax/tax_helpers.rb +49 -0
  160. data/app/models/spree/tax/tax_location.rb +33 -0
  161. data/app/models/spree/tax_category.rb +1 -1
  162. data/app/models/spree/tax_rate.rb +46 -111
  163. data/app/models/spree/taxon.rb +36 -12
  164. data/app/models/spree/taxonomy.rb +10 -10
  165. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -1
  166. data/app/models/spree/variant/pricer.rb +19 -0
  167. data/app/models/spree/variant/pricing_options.rb +31 -0
  168. data/app/models/spree/variant/scopes.rb +9 -9
  169. data/app/models/spree/variant.rb +95 -89
  170. data/app/models/spree/variant_property_rule.rb +1 -1
  171. data/app/models/spree/variant_property_rule_value.rb +2 -0
  172. data/app/models/spree/zone.rb +60 -24
  173. data/config/initializers/friendly_id.rb +1 -1
  174. data/config/locales/en.yml +337 -51
  175. data/config/routes.rb +1 -1
  176. data/db/default/spree/countries.rb +9 -15
  177. data/db/default/spree/roles.rb +1 -2
  178. data/db/default/spree/states.rb +7 -11
  179. data/db/default/spree/store_credit.rb +2 -2
  180. data/db/default/spree/stores.rb +2 -1
  181. data/db/migrate/20120831092320_spree_one_two.rb +100 -101
  182. data/db/migrate/20120831092359_spree_promo_one_two.rb +12 -12
  183. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +1 -1
  184. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +1 -1
  185. data/db/migrate/20121010142909_add_states_required_to_countries.rb +1 -1
  186. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +2 -2
  187. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +4 -4
  188. data/db/migrate/20121031162139_split_prices_from_variants.rb +8 -8
  189. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +2 -2
  190. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +1 -1
  191. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +1 -1
  192. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +1 -2
  193. data/db/migrate/20130211190146_create_spree_stock_items.rb +1 -1
  194. data/db/migrate/20130213191427_create_default_stock.rb +12 -21
  195. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +1 -1
  196. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +2 -2
  197. data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
  198. data/db/migrate/20130301162924_create_shipping_method_categories.rb +2 -2
  199. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +4 -4
  200. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +2 -3
  201. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +1 -1
  202. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +1 -1
  203. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +1 -1
  204. data/db/migrate/20130319062004_change_orders_total_precision.rb +4 -4
  205. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +1 -3
  206. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -4
  207. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +1 -3
  208. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +2 -2
  209. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +2 -2
  210. data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
  211. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +3 -3
  212. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +1 -1
  213. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +3 -3
  214. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +1 -1
  215. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +2 -2
  216. data/db/migrate/20130807024301_upgrade_adjustments.rb +3 -3
  217. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +1 -1
  218. data/db/migrate/20130813140619_expand_order_number_size.rb +2 -2
  219. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +1 -1
  220. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +1 -1
  221. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  222. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +1 -1
  223. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  224. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +1 -0
  225. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +1 -1
  226. data/db/migrate/20131118043959_add_included_to_adjustments.rb +1 -1
  227. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -1
  228. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +1 -1
  229. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +1 -1
  230. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -0
  231. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +1 -1
  232. data/db/migrate/20140309023735_migrate_old_preferences.rb +4 -3
  233. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  234. data/db/migrate/20140410141842_add_many_missing_indexes.rb +13 -15
  235. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +38 -40
  236. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +4 -4
  237. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
  238. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -1
  239. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +4 -4
  240. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +4 -6
  241. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -0
  242. data/db/migrate/20141217215630_update_product_slug_index.rb +2 -4
  243. data/db/migrate/20150112194216_add_position_to_stock_location.rb +2 -2
  244. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +0 -1
  245. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +0 -1
  246. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +3 -3
  247. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -1
  248. data/db/migrate/20150612205731_remove_spree_configurations.rb +2 -2
  249. data/db/migrate/20150619160613_create_adjustment_reason.rb +1 -1
  250. data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +10 -2
  251. data/db/migrate/20150731201146_add_spree_user_addresses.rb +0 -1
  252. data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +1 -1
  253. data/db/migrate/20151001121454_create_spree_shipping_method_stock_locations.rb +13 -0
  254. data/db/migrate/20151002023248_add_foreign_key_to_shipping_method_stock_location.rb +6 -0
  255. data/db/migrate/20151026093607_change_return_item_pre_tax_amount_to_amount.rb +29 -0
  256. data/db/migrate/20160111091912_add_column_available_to_all_on_spree_shipping_method.rb +5 -0
  257. data/db/migrate/20160116133604_add_position_to_spree_payment_methods.rb +5 -0
  258. data/db/migrate/20160122182105_add_carrier_and_service_level_to_spree_shipping_methods.rb +6 -0
  259. data/db/migrate/20160224201413_create_spree_shipping_rate_taxes.rb +11 -0
  260. data/db/migrate/20160229133259_add_cart_tax_country_iso_to_spree_store.rb +5 -0
  261. data/db/migrate/20160301103333_remove_pre_tax_amount_on_line_item_and_shipment.rb +6 -0
  262. data/db/migrate/20160308000300_disallow_adjustment_finalized_nulls.rb +19 -0
  263. data/db/migrate/20160318145302_add_timestamps_to_prices.rb +5 -0
  264. data/db/migrate/20160330204846_add_missing_timestamp_columns.rb +20 -0
  265. data/lib/generators/spree/custom_user/custom_user_generator.rb +3 -8
  266. data/lib/generators/spree/dummy/dummy_generator.rb +17 -19
  267. data/lib/generators/spree/install/install_generator.rb +15 -15
  268. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  269. data/lib/spree/core/controller_helpers/auth.rb +2 -4
  270. data/lib/spree/core/controller_helpers/common.rb +42 -43
  271. data/lib/spree/core/controller_helpers/order.rb +5 -9
  272. data/lib/spree/core/controller_helpers/payment_parameters.rb +4 -5
  273. data/lib/spree/core/controller_helpers/pricing.rb +27 -0
  274. data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
  275. data/lib/spree/core/controller_helpers/search.rb +2 -2
  276. data/lib/spree/core/controller_helpers/store.rb +3 -3
  277. data/lib/spree/core/controller_helpers/strong_parameters.rb +4 -4
  278. data/lib/spree/core/current_store.rb +1 -1
  279. data/lib/spree/core/delegate_belongs_to.rb +19 -21
  280. data/lib/spree/core/engine.rb +12 -8
  281. data/lib/spree/core/environment/calculators.rb +0 -1
  282. data/lib/spree/core/environment_extension.rb +4 -4
  283. data/lib/spree/core/importer/order.rb +17 -22
  284. data/lib/spree/core/importer/product.rb +10 -9
  285. data/lib/spree/core/permalinks.rb +16 -16
  286. data/lib/spree/core/product_duplicator.rb +2 -3
  287. data/lib/spree/core/product_filters.rb +15 -16
  288. data/lib/spree/core/role_configuration.rb +2 -2
  289. data/lib/spree/core/search/base.rb +71 -57
  290. data/lib/spree/core/search/variant.rb +2 -4
  291. data/lib/spree/core/unreturned_item_charger.rb +1 -2
  292. data/lib/spree/core/validators/email.rb +2 -2
  293. data/lib/spree/core/version.rb +1 -1
  294. data/lib/spree/core.rb +2 -4
  295. data/lib/spree/i18n.rb +1 -1
  296. data/lib/spree/localized_number.rb +3 -1
  297. data/lib/spree/migrations.rb +27 -26
  298. data/lib/spree/money.rb +19 -4
  299. data/lib/spree/permission_sets/base.rb +1 -1
  300. data/lib/spree/permitted_attributes.rb +7 -7
  301. data/lib/spree/responder.rb +4 -5
  302. data/lib/spree/testing_support/authorization_helpers.rb +1 -1
  303. data/lib/spree/testing_support/caching.rb +8 -8
  304. data/lib/spree/testing_support/capybara_ext.rb +11 -13
  305. data/lib/spree/testing_support/common_rake.rb +4 -4
  306. data/lib/spree/testing_support/controller_requests.rb +1 -1
  307. data/lib/spree/testing_support/extension_rake.rb +1 -2
  308. data/lib/spree/testing_support/factories/address_factory.rb +14 -3
  309. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
  310. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  311. data/lib/spree/testing_support/factories/credit_card_factory.rb +4 -0
  312. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -6
  313. data/lib/spree/testing_support/factories/line_item_factory.rb +1 -1
  314. data/lib/spree/testing_support/factories/order_factory.rb +10 -11
  315. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  316. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -1
  317. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -1
  318. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  319. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  320. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  321. data/lib/spree/testing_support/factories/shipping_method_factory.rb +5 -2
  322. data/lib/spree/testing_support/factories/state_factory.rb +17 -7
  323. data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -4
  324. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +1 -1
  325. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -1
  326. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -2
  327. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
  328. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  329. data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
  330. data/lib/spree/testing_support/factories/zone_factory.rb +2 -1
  331. data/lib/spree/testing_support/i18n.rb +4 -5
  332. data/lib/spree/testing_support/order_walkthrough.rb +8 -9
  333. data/lib/spree/testing_support/preferences.rb +1 -1
  334. data/lib/spree/testing_support/sequences.rb +5 -4
  335. data/lib/tasks/core.rake +15 -19
  336. data/lib/tasks/email.rake +3 -3
  337. data/lib/tasks/exchanges.rake +12 -14
  338. data/lib/tasks/migrations/assure_store_on_orders.rake +38 -0
  339. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +2 -2
  340. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +1 -11
  341. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +17 -0
  342. data/lib/tasks/migrations/migrate_user_addresses.rake +1 -1
  343. data/lib/tasks/order_capturing.rake +1 -1
  344. data/lib/tasks/upgrade.rake +11 -0
  345. data/script/rails +0 -1
  346. data/solidus_core.gemspec +6 -8
  347. data/spec/helpers/base_helper_spec.rb +15 -18
  348. data/spec/helpers/order_helper_spec.rb +2 -2
  349. data/spec/helpers/products_helper_spec.rb +43 -51
  350. data/spec/helpers/taxons_helper_spec.rb +1 -1
  351. data/spec/lib/i18n_spec.rb +11 -11
  352. data/spec/lib/search/base_spec.rb +12 -14
  353. data/spec/lib/search/variant_spec.rb +1 -0
  354. data/spec/lib/spree/core/controller_helpers/order_spec.rb +1 -7
  355. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +26 -28
  356. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +63 -0
  357. data/spec/lib/spree/core/controller_helpers/search_spec.rb +4 -2
  358. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
  359. data/spec/lib/spree/core/importer/order_spec.rb +95 -90
  360. data/spec/lib/spree/core/role_configuration_spec.rb +16 -16
  361. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +35 -0
  362. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +10 -1
  363. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -1
  364. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +6 -1
  365. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +37 -1
  366. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +2 -2
  367. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +1 -1
  368. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +1 -2
  369. data/spec/lib/spree/core/testing_support/preferences_spec.rb +26 -0
  370. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +7 -9
  371. data/spec/lib/spree/core/validators/email_spec.rb +8 -6
  372. data/spec/lib/spree/localized_number_spec.rb +1 -3
  373. data/spec/lib/spree/migrations_spec.rb +2 -2
  374. data/spec/lib/spree/money_spec.rb +75 -6
  375. data/spec/lib/tasks/exchanges_spec.rb +2 -12
  376. data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -1
  377. data/spec/lib/tasks/order_capturing_spec.rb +1 -1
  378. data/spec/mailers/carton_mailer_spec.rb +3 -3
  379. data/spec/mailers/order_mailer_spec.rb +9 -11
  380. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  381. data/spec/mailers/test_mailer_spec.rb +1 -1
  382. data/spec/models/spree/ability_spec.rb +4 -7
  383. data/spec/models/spree/address_spec.rb +32 -35
  384. data/spec/models/spree/adjustment_reason_spec.rb +0 -2
  385. data/spec/models/spree/adjustment_spec.rb +2 -2
  386. data/spec/models/spree/app_configuration_spec.rb +33 -3
  387. data/spec/models/spree/asset_spec.rb +1 -2
  388. data/spec/models/spree/calculator/default_tax_spec.rb +141 -52
  389. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  390. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  391. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  392. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  393. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +9 -11
  394. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  395. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  396. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -7
  397. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  398. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +2 -2
  399. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -2
  400. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  401. data/spec/models/spree/calculator_spec.rb +3 -8
  402. data/spec/models/spree/carton_spec.rb +1 -1
  403. data/spec/models/spree/classification_spec.rb +1 -1
  404. data/spec/models/spree/concerns/display_money_spec.rb +0 -1
  405. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +26 -1
  406. data/spec/models/spree/concerns/user_address_book_spec.rb +19 -12
  407. data/spec/models/spree/concerns/user_methods_spec.rb +1 -1
  408. data/spec/models/spree/country_spec.rb +52 -0
  409. data/spec/models/spree/credit_card_spec.rb +17 -12
  410. data/spec/models/spree/customer_return_spec.rb +27 -23
  411. data/spec/models/spree/exchange_spec.rb +2 -7
  412. data/spec/models/spree/gateway/bogus_simple.rb +2 -4
  413. data/spec/models/spree/gateway/bogus_spec.rb +4 -2
  414. data/spec/models/spree/gateway_spec.rb +8 -3
  415. data/spec/models/spree/inventory_unit_spec.rb +13 -14
  416. data/spec/models/spree/item_adjustments_spec.rb +36 -40
  417. data/spec/models/spree/line_item_spec.rb +92 -48
  418. data/spec/models/spree/option_type_spec.rb +1 -1
  419. data/spec/models/spree/option_value_spec.rb +1 -1
  420. data/spec/models/spree/order/address_spec.rb +1 -1
  421. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  422. data/spec/models/spree/order/checkout_spec.rb +55 -48
  423. data/spec/models/spree/order/finalizing_spec.rb +8 -9
  424. data/spec/models/spree/order/payment_spec.rb +20 -20
  425. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  426. data/spec/models/spree/order/state_machine_spec.rb +40 -131
  427. data/spec/models/spree/order/tax_spec.rb +11 -12
  428. data/spec/models/spree/order/totals_spec.rb +3 -3
  429. data/spec/models/spree/order/updating_spec.rb +2 -2
  430. data/spec/models/spree/order/validations_spec.rb +2 -2
  431. data/spec/models/spree/order_cancellations_spec.rb +1 -1
  432. data/spec/models/spree/order_capturing_spec.rb +1 -1
  433. data/spec/models/spree/order_contents_spec.rb +10 -11
  434. data/spec/models/spree/order_inventory_spec.rb +11 -11
  435. data/spec/models/spree/order_merger_spec.rb +1 -0
  436. data/spec/models/spree/order_shipping_spec.rb +8 -10
  437. data/spec/models/spree/order_spec.rb +137 -124
  438. data/spec/models/spree/order_stock_location_spec.rb +2 -2
  439. data/spec/models/spree/order_update_attributes_spec.rb +6 -10
  440. data/spec/models/spree/order_updater_spec.rb +4 -8
  441. data/spec/models/spree/payment_create_spec.rb +11 -12
  442. data/spec/models/spree/payment_method/store_credit_spec.rb +10 -6
  443. data/spec/models/spree/payment_method_spec.rb +4 -5
  444. data/spec/models/spree/payment_spec.rb +61 -69
  445. data/spec/models/spree/permission_sets/base_spec.rb +1 -1
  446. data/spec/models/spree/permission_sets/configuration_display.rb +0 -1
  447. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -1
  448. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -1
  449. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -1
  450. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -1
  451. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -1
  452. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -1
  453. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -1
  454. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -1
  455. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -1
  456. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -1
  457. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -1
  458. data/spec/models/spree/permission_sets/restricted_stock_transfer_display_spec.rb +0 -1
  459. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +6 -6
  460. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -1
  461. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -1
  462. data/spec/models/spree/permission_sets/stock_transfer_display_spec.rb +0 -1
  463. data/spec/models/spree/permission_sets/stock_transfer_management_spec.rb +0 -2
  464. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -1
  465. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -1
  466. data/spec/models/spree/preference_spec.rb +1 -4
  467. data/spec/models/spree/preferences/configuration_spec.rb +2 -7
  468. data/spec/models/spree/preferences/preferable_spec.rb +13 -24
  469. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  470. data/spec/models/spree/preferences/static_model_preferences_spec.rb +5 -6
  471. data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -6
  472. data/spec/models/spree/preferences/store_spec.rb +2 -3
  473. data/spec/models/spree/price_spec.rb +6 -6
  474. data/spec/models/spree/product/scopes_spec.rb +20 -20
  475. data/spec/models/spree/product_duplicator_spec.rb +16 -29
  476. data/spec/models/spree/product_filter_spec.rb +2 -2
  477. data/spec/models/spree/product_spec.rb +53 -20
  478. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +10 -12
  479. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +4 -4
  480. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +9 -9
  481. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  482. data/spec/models/spree/promotion/rules/first_order_spec.rb +10 -10
  483. data/spec/models/spree/promotion/rules/item_total_spec.rb +63 -19
  484. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  485. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  486. data/spec/models/spree/promotion/rules/taxon_spec.rb +4 -4
  487. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -4
  488. data/spec/models/spree/promotion/rules/user_spec.rb +7 -7
  489. data/spec/models/spree/promotion_builder_spec.rb +10 -8
  490. data/spec/models/spree/promotion_category_spec.rb +1 -1
  491. data/spec/models/spree/promotion_code/code_builder_spec.rb +1 -3
  492. data/spec/models/spree/promotion_code_spec.rb +8 -7
  493. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  494. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  495. data/spec/models/spree/promotion_handler/page_spec.rb +6 -7
  496. data/spec/models/spree/promotion_rule_spec.rb +1 -2
  497. data/spec/models/spree/promotion_spec.rb +25 -21
  498. data/spec/models/spree/refund_spec.rb +8 -11
  499. data/spec/models/spree/reimbursement/credit_spec.rb +2 -2
  500. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +6 -4
  501. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  502. data/spec/models/spree/reimbursement_performer_spec.rb +2 -2
  503. data/spec/models/spree/reimbursement_spec.rb +9 -11
  504. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +4 -5
  505. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -2
  506. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -3
  507. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +4 -4
  508. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +1 -1
  509. data/spec/models/spree/return_authorization_spec.rb +18 -21
  510. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +7 -7
  511. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -1
  512. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -1
  513. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  514. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  515. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -2
  516. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +3 -5
  517. data/spec/models/spree/return_item_spec.rb +29 -31
  518. data/spec/models/spree/returns_calculator_spec.rb +1 -1
  519. data/spec/models/spree/shipment_spec.rb +59 -43
  520. data/spec/models/spree/shipping_calculator_spec.rb +3 -3
  521. data/spec/models/spree/shipping_manifest_spec.rb +8 -7
  522. data/spec/models/spree/shipping_method_spec.rb +149 -24
  523. data/spec/models/spree/shipping_rate_spec.rb +116 -76
  524. data/spec/models/spree/shipping_rate_tax_spec.rb +83 -0
  525. data/spec/models/spree/state_spec.rb +2 -2
  526. data/spec/models/spree/stock/availability_validator_spec.rb +4 -4
  527. data/spec/models/spree/stock/coordinator_spec.rb +33 -49
  528. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  529. data/spec/models/spree/stock/estimator_spec.rb +83 -54
  530. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -3
  531. data/spec/models/spree/stock/package_spec.rb +27 -10
  532. data/spec/models/spree/stock/packer_spec.rb +4 -4
  533. data/spec/models/spree/stock/prioritizer_spec.rb +1 -1
  534. data/spec/models/spree/stock/quantifier_spec.rb +2 -6
  535. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  536. data/spec/models/spree/stock/splitter/base_spec.rb +1 -2
  537. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +1 -3
  538. data/spec/models/spree/stock/splitter/weight_spec.rb +3 -3
  539. data/spec/models/spree/stock_item_spec.rb +16 -16
  540. data/spec/models/spree/stock_location_spec.rb +6 -8
  541. data/spec/models/spree/stock_movement_spec.rb +1 -1
  542. data/spec/models/spree/stock_transfer_spec.rb +1 -3
  543. data/spec/models/spree/store_credit_category_spec.rb +1 -1
  544. data/spec/models/spree/store_credit_event_spec.rb +3 -5
  545. data/spec/models/spree/store_credit_spec.rb +24 -23
  546. data/spec/models/spree/store_spec.rb +21 -2
  547. data/spec/models/spree/tax/item_adjuster_spec.rb +74 -0
  548. data/spec/models/spree/tax/order_adjuster_spec.rb +49 -0
  549. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +50 -0
  550. data/spec/models/spree/tax/tax_location_spec.rb +68 -0
  551. data/spec/models/spree/tax/taxation_integration_spec.rb +787 -0
  552. data/spec/models/spree/tax_category_spec.rb +2 -2
  553. data/spec/models/spree/tax_rate_spec.rb +185 -536
  554. data/spec/models/spree/taxon_spec.rb +69 -5
  555. data/spec/models/spree/taxonomy_spec.rb +2 -3
  556. data/spec/models/spree/tracker_spec.rb +1 -1
  557. data/spec/models/spree/transfer_item_spec.rb +1 -1
  558. data/spec/models/spree/unit_cancel_spec.rb +9 -14
  559. data/spec/models/spree/user_spec.rb +19 -24
  560. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +1 -1
  561. data/spec/models/spree/variant/pricer_spec.rb +48 -0
  562. data/spec/models/spree/variant/pricing_options_spec.rb +106 -0
  563. data/spec/models/spree/variant/scopes_spec.rb +31 -8
  564. data/spec/models/spree/variant_property_rule_spec.rb +1 -1
  565. data/spec/models/spree/variant_spec.rb +166 -52
  566. data/spec/models/spree/zone_spec.rb +135 -10
  567. data/spec/support/big_decimal.rb +1 -1
  568. data/spec/support/concerns/working_factories.rb +2 -2
  569. data/spec/support/dummy_ability.rb +0 -1
  570. metadata +55 -44
  571. data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
  572. data/lib/spree/migration_helpers.rb +0 -19
  573. data/vendor/assets/stylesheets/skeleton.css +0 -242
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  describe OrderUpdater, type: :model do
5
+ let!(:store) { create :store }
5
6
  let(:order) { Spree::Order.create }
6
7
  let(:updater) { Spree::OrderUpdater.new(order) }
7
8
 
@@ -38,14 +39,14 @@ module Spree
38
39
  let(:promotion_action) do
39
40
  Promotion::Actions::CreateAdjustment.create!({
40
41
  calculator: calculator,
41
- promotion: promotion,
42
+ promotion: promotion
42
43
  })
43
44
  end
44
45
 
45
46
  before do
46
47
  updater.update
47
48
  create(:adjustment, source: promotion_action, adjustable: order, order: order)
48
- create(:line_item, :order => order, price: 10) # in addition to the two already created
49
+ create(:line_item, order: order, price: 10) # in addition to the two already created
49
50
  updater.update
50
51
  end
51
52
 
@@ -60,7 +61,7 @@ module Spree
60
61
  order.line_items.first.update_columns({
61
62
  adjustment_total: 10.05,
62
63
  additional_tax_total: 0.05,
63
- included_tax_total: 0.05,
64
+ included_tax_total: 0.05
64
65
  })
65
66
  updater.update_adjustment_total
66
67
  expect(order.adjustment_total).to eq(10.05)
@@ -86,7 +87,6 @@ module Spree
86
87
  expect(order.shipment_state).to be_nil
87
88
  end
88
89
 
89
-
90
90
  ["shipped", "ready", "pending"].each do |state|
91
91
  it "is #{state}" do
92
92
  create(:shipment, order: order, state: state)
@@ -165,7 +165,6 @@ module Spree
165
165
  end
166
166
 
167
167
  context "order is canceled" do
168
-
169
168
  before do
170
169
  order.state = 'canceled'
171
170
  end
@@ -181,7 +180,6 @@ module Spree
181
180
  end
182
181
 
183
182
  context "and is paid" do
184
-
185
183
  it "is credit_owed" do
186
184
  order.payment_total = 30
187
185
  order.total = 30
@@ -190,7 +188,6 @@ module Spree
190
188
  updater.update_payment_state
191
189
  }.to change { order.payment_state }.to 'credit_owed'
192
190
  end
193
-
194
191
  end
195
192
 
196
193
  context "and payment is refunded" do
@@ -203,7 +200,6 @@ module Spree
203
200
  end
204
201
  end
205
202
  end
206
-
207
203
  end
208
204
 
209
205
  it "state change" do
@@ -25,13 +25,13 @@ module Spree
25
25
  context 'with a new source' do
26
26
  let(:attributes) do
27
27
  {
28
- :amount => 100,
29
- :payment_method => payment_method,
30
- :source_attributes => {
31
- :expiry =>"01 / 99",
32
- :number => '1234567890123',
33
- :verification_value => '123',
34
- :name => 'Foo Bar'
28
+ amount: 100,
29
+ payment_method: payment_method,
30
+ source_attributes: {
31
+ expiry: "01 / 99",
32
+ number: '1234567890123',
33
+ verification_value: '123',
34
+ name: 'Foo Bar'
35
35
  }
36
36
  }
37
37
  end
@@ -48,9 +48,8 @@ module Spree
48
48
  {
49
49
  amount: 100,
50
50
  payment_method: payment_method,
51
- source_attributes: {expiry: "1 / 12"}
51
+ source_attributes: { expiry: "1 / 12" }
52
52
  }
53
-
54
53
  end
55
54
  it "errors when payment source not valid" do
56
55
  expect(new_payment).not_to be_valid
@@ -71,7 +70,7 @@ module Spree
71
70
  {
72
71
  source_attributes: {
73
72
  existing_card_id: credit_card.id,
74
- verification_value: '321',
73
+ verification_value: '321'
75
74
  }
76
75
  }
77
76
  end
@@ -89,9 +88,9 @@ module Spree
89
88
  end
90
89
 
91
90
  context 'with request_env' do
92
- let(:request_env){ {'USER_AGENT' => 'Firefox'} }
91
+ let(:request_env){ { 'USER_AGENT' => 'Firefox' } }
93
92
  it 'sets the request_env on the payment' do
94
- expect(new_payment.request_env).to eq({'USER_AGENT' => 'Firefox'})
93
+ expect(new_payment.request_env).to eq({ 'USER_AGENT' => 'Firefox' })
95
94
  end
96
95
  end
97
96
 
@@ -70,7 +70,7 @@ describe Spree::PaymentMethod::StoreCredit do
70
70
  let(:auth_code) { auth_event.authorization_code }
71
71
  let(:gateway_options) { super().merge(originator: originator) }
72
72
 
73
- let(:authorized_amount) { capture_amount/100.0 }
73
+ let(:authorized_amount) { capture_amount / 100.0 }
74
74
  let(:auth_event) { create(:store_credit_auth_event, store_credit: store_credit, amount: authorized_amount) }
75
75
  let(:store_credit) { create(:store_credit, amount_authorized: authorized_amount) }
76
76
  let(:originator) { nil }
@@ -85,7 +85,7 @@ describe Spree::PaymentMethod::StoreCredit do
85
85
  end
86
86
 
87
87
  context 'when unable to authorize the amount' do
88
- let(:authorized_amount) { (capture_amount-1)/100 }
88
+ let(:authorized_amount) { (capture_amount - 1) / 100 }
89
89
 
90
90
  before do
91
91
  allow_any_instance_of(Spree::StoreCredit).to receive_messages(authorize: true)
@@ -256,10 +256,12 @@ describe Spree::PaymentMethod::StoreCredit do
256
256
  let(:captured_amount) { 10.0 }
257
257
 
258
258
  context "capture event found" do
259
- let!(:store_credit_event) { create(:store_credit_capture_event,
259
+ let!(:store_credit_event) {
260
+ create(:store_credit_capture_event,
260
261
  authorization_code: auth_code,
261
262
  amount: captured_amount,
262
- store_credit: store_credit) }
263
+ store_credit: store_credit)
264
+ }
263
265
 
264
266
  it "creates a store credit for the same amount that was captured" do
265
267
  expect_any_instance_of(Spree::StoreCredit).to receive(:credit).with(captured_amount, auth_code, store_credit.currency)
@@ -269,10 +271,12 @@ describe Spree::PaymentMethod::StoreCredit do
269
271
 
270
272
  context "capture event not found" do
271
273
  context "auth event found" do
272
- let!(:store_credit_event) { create(:store_credit_auth_event,
274
+ let!(:store_credit_event) {
275
+ create(:store_credit_auth_event,
273
276
  authorization_code: auth_code,
274
277
  amount: captured_amount,
275
- store_credit: store_credit) }
278
+ store_credit: store_credit)
279
+ }
276
280
 
277
281
  it "creates a store credit for the same amount that was captured" do
278
282
  expect_any_instance_of(Spree::StoreCredit).to receive(:void).with(auth_code)
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::PaymentMethod, :type => :model do
3
+ describe Spree::PaymentMethod, type: :model do
4
4
  describe ".available" do
5
5
  let!(:payment_method_nil_display) { create(:payment_method, active: true, display_on: nil) }
6
6
  let!(:payment_method_both_display) { create(:payment_method, active: true, display_on: 'both') }
@@ -34,7 +34,7 @@ describe Spree::PaymentMethod, :type => :model do
34
34
  payment_method_nil_display,
35
35
  payment_method_both_display,
36
36
  payment_method_front_display,
37
- payment_method_back_display,
37
+ payment_method_back_display
38
38
  ]
39
39
  )
40
40
  end
@@ -64,7 +64,7 @@ describe Spree::PaymentMethod, :type => :model do
64
64
  payment_method_nil_display,
65
65
  payment_method_both_display,
66
66
  store_2_payment_method,
67
- no_store_payment_method,
67
+ no_store_payment_method
68
68
  ]
69
69
  )
70
70
  end
@@ -78,7 +78,7 @@ describe Spree::PaymentMethod, :type => :model do
78
78
  payment_method_nil_display,
79
79
  payment_method_both_display,
80
80
  store_2_payment_method,
81
- no_store_payment_method,
81
+ no_store_payment_method
82
82
  ]
83
83
  )
84
84
  end
@@ -143,5 +143,4 @@ describe Spree::PaymentMethod, :type => :model do
143
143
  end
144
144
  end
145
145
  end
146
-
147
146
  end
@@ -1,12 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Payment, :type => :model do
4
- let(:order) { Spree::Order.create }
3
+ describe Spree::Payment, type: :model do
4
+ let(:store) { create :store }
5
+ let(:order) { Spree::Order.create(store: store) }
5
6
  let(:refund_reason) { create(:refund_reason) }
6
7
 
7
8
  let(:gateway) do
8
- gateway = Spree::Gateway::Bogus.new(:active => true, :name => 'Bogus gateway')
9
- allow(gateway).to receive_messages :source_required => true
9
+ gateway = Spree::Gateway::Bogus.new(active: true, name: 'Bogus gateway')
10
+ allow(gateway).to receive_messages source_required: true
10
11
  gateway
11
12
  end
12
13
 
@@ -44,7 +45,6 @@ describe Spree::Payment, :type => :model do
44
45
  end
45
46
 
46
47
  context '.risky' do
47
-
48
48
  let!(:payment_1) { create(:payment, avs_response: 'Y', cvv_response_code: 'M', cvv_response_message: 'Match') }
49
49
  let!(:payment_2) { create(:payment, avs_response: 'Y', cvv_response_code: 'M', cvv_response_message: '') }
50
50
  let!(:payment_3) { create(:payment, avs_response: 'A', cvv_response_code: 'M', cvv_response_message: 'Match') }
@@ -53,7 +53,6 @@ describe Spree::Payment, :type => :model do
53
53
  it 'should not return successful responses' do
54
54
  expect(subject.class.risky.to_a).to match_array([payment_3, payment_4])
55
55
  end
56
-
57
56
  end
58
57
 
59
58
  context "#captured_amount" do
@@ -91,7 +90,7 @@ describe Spree::Payment, :type => :model do
91
90
  payment.source = Spree::CreditCard.new
92
91
  expect(payment).not_to be_valid
93
92
  cc_errors = payment.errors['Credit Card']
94
- expect(cc_errors).to include("Number can't be blank")
93
+ expect(cc_errors).to include("Card Number can't be blank")
95
94
  expect(cc_errors).to include("Month is not a number")
96
95
  expect(cc_errors).to include("Year is not a number")
97
96
  expect(cc_errors).to include("Verification Value can't be blank")
@@ -111,7 +110,6 @@ describe Spree::Payment, :type => :model do
111
110
  payment.failure
112
111
  expect(payment.state).to eql('failed')
113
112
  end
114
-
115
113
  end
116
114
 
117
115
  context 'invalidate' do
@@ -122,7 +120,6 @@ describe Spree::Payment, :type => :model do
122
120
  end
123
121
 
124
122
  context "the payment's source is invalid" do
125
-
126
123
  before(:each) do
127
124
  card.year = 2014
128
125
  payment.source = card
@@ -131,7 +128,7 @@ describe Spree::Payment, :type => :model do
131
128
  it "transitions to invalid" do
132
129
  payment.state = 'checkout'
133
130
  payment.invalidate
134
- expect(payment.state).to eq ('invalid')
131
+ expect(payment.state).to eq 'invalid'
135
132
  end
136
133
  end
137
134
  end
@@ -210,22 +207,22 @@ describe Spree::Payment, :type => :model do
210
207
 
211
208
  it "should invalidate if payment method doesnt support source" do
212
209
  expect(payment.payment_method).to receive(:supports?).with(payment.source).and_return(false)
213
- expect { payment.process!}.to raise_error(Spree::Core::GatewayError)
210
+ expect { payment.process! }.to raise_error(Spree::Core::GatewayError)
214
211
  expect(payment.state).to eq('invalid')
215
212
  end
216
213
 
217
214
  # Regression test for https://github.com/spree/spree/issues/4598
218
215
  it "should allow payments with a gateway_customer_profile_id" do
219
- allow(payment.source).to receive_messages :gateway_customer_profile_id => "customer_1"
220
- expect(payment.payment_method).to receive(:supports?).with(payment.source).and_return(false)
216
+ payment.source.update!(gateway_customer_profile_id: "customer_1", brand: 'visa')
217
+ expect(payment.payment_method.provider_class).to receive(:supports?).with('visa').and_return(false)
221
218
  expect(payment).to receive(:started_processing!)
222
219
  payment.process!
223
220
  end
224
221
 
225
222
  # Another regression test for https://github.com/spree/spree/issues/4598
226
223
  it "should allow payments with a gateway_payment_profile_id" do
227
- allow(payment.source).to receive_messages :gateway_payment_profile_id => "customer_1"
228
- expect(payment.payment_method).to receive(:supports?).with(payment.source).and_return(false)
224
+ payment.source.update!(gateway_payment_profile_id: "customer_1", brand: 'visa')
225
+ expect(payment.payment_method.provider_class).to receive(:supports?).with('visa').and_return(false)
229
226
  expect(payment).to receive(:started_processing!)
230
227
  payment.process!
231
228
  end
@@ -240,10 +237,10 @@ describe Spree::Payment, :type => :model do
240
237
  end
241
238
 
242
239
  it "should call authorize on the gateway with the currency code" do
243
- allow(payment).to receive_messages :currency => 'GBP'
240
+ allow(payment).to receive_messages currency: 'GBP'
244
241
  expect(payment.payment_method).to receive(:authorize).with(amount_in_cents,
245
242
  card,
246
- hash_including({:currency => "GBP"})).and_return(success_response)
243
+ hash_including({ currency: "GBP" })).and_return(success_response)
247
244
  payment.authorize!
248
245
  end
249
246
 
@@ -463,7 +460,7 @@ describe Spree::Payment, :type => :model do
463
460
 
464
461
  context "if unsuccessful" do
465
462
  it "should not make payment complete" do
466
- allow(gateway).to receive_messages :capture => failed_response
463
+ allow(gateway).to receive_messages capture: failed_response
467
464
  expect(payment).to receive(:failure)
468
465
  expect(payment).not_to receive(:complete)
469
466
  expect { payment.capture! }.to raise_error(Spree::Core::GatewayError)
@@ -495,7 +492,7 @@ describe Spree::Payment, :type => :model do
495
492
  context "if successful" do
496
493
  it "should update the response_code with the authorization from the gateway" do
497
494
  # Change it to something different
498
- allow(gateway).to receive_messages :cancel => success_response
495
+ allow(gateway).to receive_messages cancel: success_response
499
496
  payment.cancel!
500
497
  expect(payment.state).to eq('void')
501
498
  expect(payment.response_code).to eq('123')
@@ -504,16 +501,14 @@ describe Spree::Payment, :type => :model do
504
501
 
505
502
  context "if unsuccessful" do
506
503
  it "should not void the payment" do
507
- allow(gateway).to receive_messages :cancel => failed_response
504
+ allow(gateway).to receive_messages cancel: failed_response
508
505
  expect { payment.cancel! }.to raise_error(Spree::Core::GatewayError)
509
506
  expect(payment.state).to eq('pending')
510
507
  expect(payment.response_code).to eq('abc')
511
508
  end
512
509
  end
513
-
514
510
  end
515
511
 
516
-
517
512
  describe "#void_transaction!" do
518
513
  before do
519
514
  payment.response_code = '123'
@@ -522,7 +517,7 @@ describe Spree::Payment, :type => :model do
522
517
 
523
518
  context "when profiles are supported" do
524
519
  it "should call payment_gateway.void with the payment's response_code" do
525
- allow(gateway).to receive_messages :payment_profiles_supported? => true
520
+ allow(gateway).to receive_messages payment_profiles_supported?: true
526
521
  expect(gateway).to receive(:void).with('123', card, anything).and_return(success_response)
527
522
  payment.void_transaction!
528
523
  end
@@ -530,14 +525,14 @@ describe Spree::Payment, :type => :model do
530
525
 
531
526
  context "when profiles are not supported" do
532
527
  it "should call payment_gateway.void with the payment's response_code" do
533
- allow(gateway).to receive_messages :payment_profiles_supported? => false
528
+ allow(gateway).to receive_messages payment_profiles_supported?: false
534
529
  expect(gateway).to receive(:void).with('123', anything).and_return(success_response)
535
530
  payment.void_transaction!
536
531
  end
537
532
  end
538
533
 
539
534
  it "should log the response" do
540
- expect(payment.log_entries).to receive(:create!).with(:details => anything)
535
+ expect(payment.log_entries).to receive(:create!).with(details: anything)
541
536
  payment.void_transaction!
542
537
  end
543
538
 
@@ -552,7 +547,7 @@ describe Spree::Payment, :type => :model do
552
547
 
553
548
  context "if unsuccessful" do
554
549
  it "should not void the payment" do
555
- allow(gateway).to receive_messages :void => failed_response
550
+ allow(gateway).to receive_messages void: failed_response
556
551
  expect(payment).not_to receive(:void)
557
552
  expect { payment.void_transaction! }.to raise_error(Spree::Core::GatewayError)
558
553
  end
@@ -570,7 +565,6 @@ describe Spree::Payment, :type => :model do
570
565
  end
571
566
  end
572
567
  end
573
-
574
568
  end
575
569
 
576
570
  context "when already processing" do
@@ -597,7 +591,7 @@ describe Spree::Payment, :type => :model do
597
591
  context "raises no error if source is not specified" do
598
592
  before do
599
593
  payment.source = nil
600
- allow(payment.payment_method).to receive_messages(:source_required? => false)
594
+ allow(payment.payment_method).to receive_messages(source_required?: false)
601
595
  end
602
596
 
603
597
  specify do
@@ -640,7 +634,7 @@ describe Spree::Payment, :type => :model do
640
634
  context "not completed payments" do
641
635
  it "doesn't update order payment total" do
642
636
  expect {
643
- Spree::Payment.create(:amount => 100, :order => order)
637
+ Spree::Payment.create(amount: 100, order: order)
644
638
  }.not_to change { order.payment_total }
645
639
  end
646
640
  end
@@ -661,20 +655,19 @@ describe Spree::Payment, :type => :model do
661
655
  end
662
656
 
663
657
  context "completed orders" do
664
- let(:payment_method) { create(:check_payment_method) }
665
658
  before { allow(order).to receive_messages completed?: true }
666
659
 
667
660
  it "updates payment_state and shipments" do
668
661
  expect(order.updater).to receive(:update_payment_state)
669
662
  expect(order.updater).to receive(:update_shipment_state)
670
- Spree::Payment.create!(amount: 100, order: order, payment_method: payment_method)
663
+ Spree::Payment.create(amount: 100, order: order)
671
664
  end
672
665
  end
673
666
 
674
667
  context "when profiles are supported" do
675
668
  before do
676
- allow(gateway).to receive_messages :payment_profiles_supported? => true
677
- allow(payment.source).to receive_messages :has_payment_profile? => false
669
+ allow(gateway).to receive_messages payment_profiles_supported?: true
670
+ allow(payment.source).to receive_messages has_payment_profile?: false
678
671
  end
679
672
 
680
673
  context "when there is an error connecting to the gateway" do
@@ -682,10 +675,10 @@ describe Spree::Payment, :type => :model do
682
675
  expect(gateway).to receive(:create_profile).and_raise(ActiveMerchant::ConnectionError.new("foo", nil))
683
676
  expect do
684
677
  Spree::Payment.create(
685
- :amount => 100,
686
- :order => order,
687
- :source => card,
688
- :payment_method => gateway
678
+ amount: 100,
679
+ order: order,
680
+ source: card,
681
+ payment_method: gateway
689
682
  )
690
683
  end.to raise_error(Spree::Core::GatewayError)
691
684
  end
@@ -713,32 +706,31 @@ describe Spree::Payment, :type => :model do
713
706
  amount: 100
714
707
  )
715
708
  end
716
-
717
709
  end
718
710
 
719
711
  context "when successfully connecting to the gateway" do
720
712
  it "should create a payment profile" do
721
713
  expect(payment.payment_method).to receive :create_profile
722
- payment = Spree::Payment.create(
723
- :amount => 100,
724
- :order => order,
725
- :source => card,
726
- :payment_method => gateway
714
+ Spree::Payment.create(
715
+ amount: 100,
716
+ order: order,
717
+ source: card,
718
+ payment_method: gateway
727
719
  )
728
720
  end
729
721
  end
730
722
  end
731
723
 
732
724
  context "when profiles are not supported" do
733
- before { allow(gateway).to receive_messages :payment_profiles_supported? => false }
725
+ before { allow(gateway).to receive_messages payment_profiles_supported?: false }
734
726
 
735
727
  it "should not create a payment profile" do
736
728
  expect(gateway).not_to receive :create_profile
737
- payment = Spree::Payment.create(
738
- :amount => 100,
739
- :order => order,
740
- :source => card,
741
- :payment_method => gateway
729
+ Spree::Payment.create(
730
+ amount: 100,
731
+ order: order,
732
+ source: card,
733
+ payment_method: gateway
742
734
  )
743
735
  end
744
736
  end
@@ -747,7 +739,7 @@ describe Spree::Payment, :type => :model do
747
739
  describe '#invalidate_old_payments' do
748
740
  it 'should not invalidate other payments if not valid' do
749
741
  payment.save
750
- invalid_payment = Spree::Payment.new(:amount => 100, :order => order, :state => 'invalid', :payment_method => gateway)
742
+ invalid_payment = Spree::Payment.new(amount: 100, order: order, state: 'invalid', payment_method: gateway)
751
743
  invalid_payment.save
752
744
  expect(payment.reload.state).to eq('checkout')
753
745
  end
@@ -764,13 +756,13 @@ describe Spree::Payment, :type => :model do
764
756
  context 'with a new source' do
765
757
  let(:params) do
766
758
  {
767
- :amount => 100,
768
- :payment_method => gateway,
769
- :source_attributes => {
770
- :expiry =>"01 / 99",
771
- :number => '1234567890123',
772
- :verification_value => '123',
773
- :name => 'Spree Commerce'
759
+ amount: 100,
760
+ payment_method: gateway,
761
+ source_attributes: {
762
+ expiry: "01 / 99",
763
+ number: '1234567890123',
764
+ verification_value: '123',
765
+ name: 'Spree Commerce'
774
766
  }
775
767
  }
776
768
  end
@@ -790,8 +782,8 @@ describe Spree::Payment, :type => :model do
790
782
  end
791
783
 
792
784
  it "errors when payment source not valid" do
793
- params = { :amount => 100, :payment_method => gateway,
794
- :source_attributes => {:expiry => "1 / 12" }}
785
+ params = { amount: 100, payment_method: gateway,
786
+ source_attributes: { expiry: "1 / 12" } }
795
787
 
796
788
  payment = Spree::Payment.new(params)
797
789
  expect(payment).not_to be_valid
@@ -816,8 +808,8 @@ describe Spree::Payment, :type => :model do
816
808
  {
817
809
  source_attributes: {
818
810
  existing_card_id: credit_card.id,
819
- verification_value: '321',
820
- },
811
+ verification_value: '321'
812
+ }
821
813
  }
822
814
  end
823
815
 
@@ -840,8 +832,8 @@ describe Spree::Payment, :type => :model do
840
832
  end
841
833
 
842
834
  it 'sets the request_env on the payment' do
843
- payment = order.payments.create!(params.merge(request_env: {'USER_AGENT' => 'Firefox'}))
844
- expect(payment.request_env).to eq({'USER_AGENT' => 'Firefox'})
835
+ payment = order.payments.create!(params.merge(request_env: { 'USER_AGENT' => 'Firefox' }))
836
+ expect(payment.request_env).to eq({ 'USER_AGENT' => 'Firefox' })
845
837
  end
846
838
 
847
839
  context 'the credit card belongs to a different user' do
@@ -893,7 +885,7 @@ describe Spree::Payment, :type => :model do
893
885
 
894
886
  # Regression test for https://github.com/spree/spree/issues/2216
895
887
  describe "#gateway_options" do
896
- before { allow(order).to receive_messages(:last_ip_address => "192.168.1.1") }
888
+ before { allow(order).to receive_messages(last_ip_address: "192.168.1.1") }
897
889
 
898
890
  it "contains an IP" do
899
891
  expect(payment.gateway_options[:ip]).to eq(order.last_ip_address)
@@ -903,7 +895,7 @@ describe Spree::Payment, :type => :model do
903
895
  # Sets the payment's order to a different Ruby object entirely
904
896
  payment.order = Spree::Order.find(payment.order_id)
905
897
  email = 'foo@example.com'
906
- order.update_attributes(:email => email)
898
+ order.update_attributes(email: email)
907
899
  expect(payment.gateway_options[:email]).to eq(email)
908
900
  end
909
901
  end
@@ -1023,7 +1015,7 @@ describe Spree::Payment, :type => :model do
1023
1015
 
1024
1016
  context "when the locale uses a coma as a decimal separator" do
1025
1017
  before(:each) do
1026
- I18n.backend.store_translations(:fr, { :number => { :currency => { :format => { :delimiter => ' ', :separator => ',' } } } })
1018
+ I18n.backend.store_translations(:fr, { number: { currency: { format: { delimiter: ' ', separator: ',' } } } })
1027
1019
  I18n.locale = :fr
1028
1020
  subject.amount = amount
1029
1021
  end
@@ -1130,10 +1122,10 @@ describe Spree::Payment, :type => :model do
1130
1122
  expect(payment.state_changes).to be_empty
1131
1123
  expect(payment.process!).to be true
1132
1124
  expect(payment.state_changes.count).to eq(2)
1133
- changes = payment.state_changes.map { |change| { change.previous_state => change.next_state} }
1125
+ changes = payment.state_changes.map { |change| { change.previous_state => change.next_state } }
1134
1126
  expect(changes).to match_array([
1135
- {"checkout" => "processing"},
1136
- { "processing" => "pending"}
1127
+ { "checkout" => "processing" },
1128
+ { "processing" => "pending" }
1137
1129
  ])
1138
1130
  end
1139
1131
  end
@@ -6,7 +6,7 @@ describe Spree::PermissionSets::Base do
6
6
 
7
7
  describe "activate!" do
8
8
  it "raises a not implemented error" do
9
- expect{subject}.to raise_error(NotImplementedError)
9
+ expect{ subject }.to raise_error(NotImplementedError)
10
10
  end
11
11
  end
12
12
  end
@@ -79,4 +79,3 @@ describe Spree::PermissionSets::ConfigurationDisplay do
79
79
  it { is_expected.not_to be_able_to(:admin, Spree::ReturnReason) }
80
80
  end
81
81
  end
82
-
@@ -47,4 +47,3 @@ describe Spree::PermissionSets::ConfigurationManagement do
47
47
  it { is_expected.not_to be_able_to(:manage, Spree::ReturnReason) }
48
48
  end
49
49
  end
50
-
@@ -19,4 +19,3 @@ describe Spree::PermissionSets::DashboardDisplay do
19
19
  it { is_expected.not_to be_able_to(:home, :dashboards) }
20
20
  end
21
21
  end
22
-
@@ -52,4 +52,3 @@ describe Spree::PermissionSets::OrderDisplay do
52
52
  it { is_expected.not_to be_able_to(:display, Spree::Refund) }
53
53
  end
54
54
  end
55
-
@@ -39,4 +39,3 @@ describe Spree::PermissionSets::OrderManagement do
39
39
  it { is_expected.not_to be_able_to(:manage, Spree::Refund) }
40
40
  end
41
41
  end
42
-
@@ -57,4 +57,3 @@ describe Spree::PermissionSets::ProductDisplay do
57
57
  it { is_expected.not_to be_able_to(:edit, Spree::Product) }
58
58
  end
59
59
  end
60
-
@@ -37,4 +37,3 @@ describe Spree::PermissionSets::ProductManagement do
37
37
  it { is_expected.not_to be_able_to(:manage, Spree::Classification) }
38
38
  end
39
39
  end
40
-
@@ -37,4 +37,3 @@ describe Spree::PermissionSets::PromotionDisplay do
37
37
  it { is_expected.not_to be_able_to(:edit, Spree::Promotion) }
38
38
  end
39
39
  end
40
-
@@ -23,4 +23,3 @@ describe Spree::PermissionSets::PromotionManagement do
23
23
  it { is_expected.not_to be_able_to(:manage, Spree::PromotionCategory) }
24
24
  end
25
25
  end
26
-
@@ -21,4 +21,3 @@ describe Spree::PermissionSets::ReportDisplay do
21
21
  it { is_expected.not_to be_able_to(:sales_total, :reports) }
22
22
  end
23
23
  end
24
-