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
@@ -38,4 +38,3 @@ describe Spree::PermissionSets::RestrictedStockDisplay do
38
38
  it { is_expected.to_not be_able_to(:display, item2) }
39
39
  end
40
40
  end
41
-
@@ -38,4 +38,3 @@ describe Spree::PermissionSets::RestrictedStockManagement do
38
38
  it { is_expected.to_not be_able_to(:manage, item2) }
39
39
  end
40
40
  end
41
-
@@ -13,7 +13,6 @@ describe Spree::PermissionSets::RestrictedStockTransferDisplay do
13
13
  let!(:other_source_transfer) { create :stock_transfer, source_location: sl2 }
14
14
  let!(:dest_transfer) { create :stock_transfer, source_location: sl2, destination_location: sl1 }
15
15
 
16
-
17
16
  before do
18
17
  user.stock_locations << sl1
19
18
  end
@@ -15,7 +15,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
15
15
  let!(:variant) { create :variant }
16
16
 
17
17
  let(:transfer_with_source) { create :stock_transfer, source_location: source_location }
18
- let(:transfer_with_destination) { create :stock_transfer, source_location: destination_location }
18
+ let(:transfer_with_destination) { create :stock_transfer, source_location: destination_location }
19
19
  let(:transfer_with_source_and_destination) do
20
20
  create :stock_transfer, source_location: source_location, destination_location: destination_location
21
21
  end
@@ -33,7 +33,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
33
33
 
34
34
  context "when activated" do
35
35
  let(:user) { create :user, stock_locations: stock_locations }
36
- let(:stock_locations) {[]}
36
+ let(:stock_locations) { [] }
37
37
 
38
38
  before do
39
39
  user.stock_locations = stock_locations
@@ -46,7 +46,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
46
46
  end
47
47
 
48
48
  context "when the user is only associated with the source location" do
49
- let(:stock_locations) {[source_location]}
49
+ let(:stock_locations) { [source_location] }
50
50
 
51
51
  it { is_expected.to be_able_to(:display, source_location) }
52
52
  it { is_expected.to_not be_able_to(:display, destination_location) }
@@ -85,7 +85,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
85
85
  end
86
86
 
87
87
  context "when the user is only associated with the destination location" do
88
- let(:stock_locations) {[destination_location]}
88
+ let(:stock_locations) { [destination_location] }
89
89
 
90
90
  it { is_expected.to be_able_to(:display, destination_location) }
91
91
  it { is_expected.to_not be_able_to(:display, source_location) }
@@ -124,7 +124,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
124
124
  end
125
125
 
126
126
  context "when the user is associated with both locations" do
127
- let(:stock_locations) {[source_location, destination_location]}
127
+ let(:stock_locations) { [source_location, destination_location] }
128
128
 
129
129
  it { is_expected.to be_able_to(:display, source_location) }
130
130
  it { is_expected.to be_able_to(:display, destination_location) }
@@ -163,7 +163,7 @@ describe Spree::PermissionSets::RestrictedStockTransferManagement do
163
163
  end
164
164
 
165
165
  context "when the user is associated with neither location" do
166
- let(:stock_locations) {[]}
166
+ let(:stock_locations) { [] }
167
167
 
168
168
  it { is_expected.to_not be_able_to(:display, source_location) }
169
169
  it { is_expected.to_not be_able_to(:display, destination_location) }
@@ -21,4 +21,3 @@ describe Spree::PermissionSets::StockDisplay do
21
21
  it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
22
22
  end
23
23
  end
24
-
@@ -19,4 +19,3 @@ describe Spree::PermissionSets::StockManagement do
19
19
  it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
20
20
  end
21
21
  end
22
-
@@ -21,4 +21,3 @@ describe Spree::PermissionSets::StockTransferDisplay do
21
21
  it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
22
22
  end
23
23
  end
24
-
@@ -21,5 +21,3 @@ describe Spree::PermissionSets::StockTransferManagement do
21
21
  it { is_expected.not_to be_able_to(:display, Spree::StockLocation) }
22
22
  end
23
23
  end
24
-
25
-
@@ -35,4 +35,3 @@ describe Spree::PermissionSets::UserDisplay do
35
35
  it { is_expected.not_to be_able_to(:display, Spree::Role) }
36
36
  end
37
37
  end
38
-
@@ -45,4 +45,3 @@ describe Spree::PermissionSets::UserManagement do
45
45
  it { is_expected.not_to be_able_to(:display, Spree::Role) }
46
46
  end
47
47
  end
48
-
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Preference, :type => :model do
4
-
3
+ describe Spree::Preference, type: :model do
5
4
  it "should require a key" do
6
5
  @preference = Spree::Preference.new
7
6
  @preference.key = :test
@@ -74,7 +73,5 @@ describe Spree::Preference, :type => :model do
74
73
  pref = round_trip_preference(key, value)
75
74
  expect(pref.value).to eq value
76
75
  end
77
-
78
76
  end
79
-
80
77
  end
@@ -1,10 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Preferences::Configuration, :type => :model do
4
-
3
+ describe Spree::Preferences::Configuration, type: :model do
5
4
  before :all do
6
5
  class AppConfig < Spree::Preferences::Configuration
7
- preference :color, :string, :default => :blue
6
+ preference :color, :string, default: :blue
8
7
  end
9
8
  @config = AppConfig.new
10
9
  end
@@ -23,8 +22,4 @@ describe Spree::Preferences::Configuration, :type => :model do
23
22
  @config.set(color: 'green')
24
23
  expect(@config.get(:color)).to eq 'green'
25
24
  end
26
-
27
25
  end
28
-
29
-
30
-
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Preferences::Preferable, :type => :model do
4
-
3
+ describe Spree::Preferences::Preferable, type: :model do
5
4
  before :all do
6
5
  class A
7
6
  include Spree::Preferences::Preferable
@@ -15,7 +14,7 @@ describe Spree::Preferences::Preferable, :type => :model do
15
14
  @preferences ||= default_preferences
16
15
  end
17
16
 
18
- preference :color, :string, :default => 'green'
17
+ preference :color, :string, default: 'green'
19
18
  end
20
19
 
21
20
  class B < A
@@ -71,7 +70,6 @@ describe Spree::Preferences::Preferable, :type => :model do
71
70
  @a.get_preference :flavor
72
71
  }.to raise_error(NoMethodError, "flavor preference not defined")
73
72
  end
74
-
75
73
  end
76
74
 
77
75
  describe "preference access" do
@@ -97,7 +95,7 @@ describe Spree::Preferences::Preferable, :type => :model do
97
95
  it "builds a hash of preferences" do
98
96
  @b.preferred_flavor = :strawberry
99
97
  expect(@b.preferences[:flavor]).to eq 'strawberry'
100
- expect(@b.preferences[:color]).to eq 'green' #default from A
98
+ expect(@b.preferences[:color]).to eq 'green' # default from A
101
99
  end
102
100
 
103
101
  it "builds a hash of preference defaults" do
@@ -119,7 +117,6 @@ describe Spree::Preferences::Preferable, :type => :model do
119
117
  @a.set_preference(:is_integer, '')
120
118
  expect(@a.preferences[:is_integer]).to eq(0)
121
119
  end
122
-
123
120
  end
124
121
 
125
122
  context "converts decimal preferences to BigDecimal values" do
@@ -143,7 +140,7 @@ describe Spree::Preferences::Preferable, :type => :model do
143
140
 
144
141
  context "converts boolean preferences to boolean values" do
145
142
  before do
146
- A.preference :is_boolean, :boolean, :default => true
143
+ A.preference :is_boolean, :boolean, default: true
147
144
  end
148
145
 
149
146
  it "with strings" do
@@ -195,21 +192,15 @@ describe Spree::Preferences::Preferable, :type => :model do
195
192
  end
196
193
 
197
194
  it "with hash and keys are integers" do
198
- @a.set_preference(:is_hash, {1 => 2, 3 => 4})
199
- expect(@a.preferences[:is_hash]).to eql({1 => 2, 3 => 4})
200
- end
201
-
202
- it "with ancestor of a hash" do
203
- ancestor_of_hash = ActionController::Parameters.new({ key: :value })
204
- @a.set_preference(:is_hash, ancestor_of_hash)
205
- expect(@a.preferences[:is_hash]).to eql({"key" => :value})
195
+ @a.set_preference(:is_hash, { 1 => 2, 3 => 4 })
196
+ expect(@a.preferences[:is_hash]).to eql({ 1 => 2, 3 => 4 })
206
197
  end
207
198
  end
208
199
 
209
200
  context "converts any preferences to any values" do
210
201
  before do
211
- A.preference :product_ids, :any, :default => []
212
- A.preference :product_attributes, :any, :default => {}
202
+ A.preference :product_ids, :any, default: []
203
+ A.preference :product_attributes, :any, default: {}
213
204
  end
214
205
 
215
206
  it "with array" do
@@ -220,11 +211,10 @@ describe Spree::Preferences::Preferable, :type => :model do
220
211
 
221
212
  it "with hash" do
222
213
  expect(@a.preferences[:product_attributes]).to eq({})
223
- @a.set_preference(:product_attributes, {:id => 1, :name => 2})
224
- expect(@a.preferences[:product_attributes]).to eq({:id => 1, :name => 2})
214
+ @a.set_preference(:product_attributes, { id: 1, name: 2 })
215
+ expect(@a.preferences[:product_attributes]).to eq({ id: 1, name: 2 })
225
216
  end
226
217
  end
227
-
228
218
  end
229
219
 
230
220
  describe "persisted preferables" do
@@ -247,8 +237,8 @@ describe Spree::Preferences::Preferable, :type => :model do
247
237
  CreatePrefTest.migrate(:up)
248
238
 
249
239
  class PrefTest < Spree::Base
250
- preference :pref_test_pref, :string, :default => 'abc'
251
- preference :pref_test_any, :any, :default => []
240
+ preference :pref_test_pref, :string, default: 'abc'
241
+ preference :pref_test_any, :any, default: []
252
242
  end
253
243
  end
254
244
 
@@ -284,11 +274,10 @@ describe Spree::Preferences::Preferable, :type => :model do
284
274
  @pt.preferred_pref_test_pref = 'lmn'
285
275
  @pt.save!
286
276
  @pt.destroy
287
- @pt1 = PrefTest.new(:col => 'aaaa')
277
+ @pt1 = PrefTest.new(col: 'aaaa')
288
278
  @pt1.id = @pt.id
289
279
  @pt1.save!
290
280
  expect(@pt1.get_preference(:pref_test_pref)).to eq('abc')
291
281
  end
292
282
  end
293
-
294
283
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Preferences::ScopedStore, :type => :model do
3
+ describe Spree::Preferences::ScopedStore, type: :model do
4
4
  let(:scoped_store){ described_class.new(prefix, suffix) }
5
5
  subject{ scoped_store }
6
6
  let(:prefix){ nil }
@@ -11,7 +11,6 @@ module Spree
11
11
  let(:other_class){ Class.new }
12
12
  let(:definitions){ subject.for_class(preference_class) }
13
13
 
14
-
15
14
  it "is empty by default" do
16
15
  expect(definitions).to be_empty
17
16
  end
@@ -24,14 +23,14 @@ module Spree
24
23
 
25
24
  it "errors assigning invalid preferences" do
26
25
  expect {
27
- subject.add(preference_class, 'my_definition', {ice_cream: 'chocolate'})
26
+ subject.add(preference_class, 'my_definition', { ice_cream: 'chocolate' })
28
27
  }.to raise_error(/\APreference :ice_cream is not defined/)
29
28
  end
30
29
 
31
30
  context "with stored definitions" do
32
31
  before do
33
- subject.add(preference_class, 'light', {color: 'white'})
34
- subject.add(preference_class, 'dark', {color: 'black'})
32
+ subject.add(preference_class, 'light', { color: 'white' })
33
+ subject.add(preference_class, 'dark', { color: 'black' })
35
34
  subject.add(preference_class, 'no_preference', {})
36
35
  end
37
36
 
@@ -42,13 +41,13 @@ module Spree
42
41
  end
43
42
 
44
43
  it "can be converted to hash" do
45
- expect(definition.to_hash).to eq({color: 'black'})
44
+ expect(definition.to_hash).to eq({ color: 'black' })
46
45
  end
47
46
 
48
47
  it "ignores assignment" do
49
48
  definition[:color] = 'maroon'
50
49
  expect(definition.fetch(:color)).to eq 'black'
51
- expect(definition.to_hash).to eq({color: 'black'})
50
+ expect(definition.to_hash).to eq({ color: 'black' })
52
51
  end
53
52
  end
54
53
 
@@ -7,11 +7,7 @@ module Spree
7
7
  Class.new do
8
8
  attr_accessor :preferences
9
9
  def initialize
10
- @preferences = {color: 'blue'}
11
- end
12
-
13
- def [](key)
14
- return @preferences if key == :preferences
10
+ @preferences = { color: 'blue' }
15
11
  end
16
12
  end
17
13
  end
@@ -56,7 +52,7 @@ module Spree
56
52
  end
57
53
 
58
54
  it "ignores assignment" do
59
- subject.preferences = {color: 'orange'}
55
+ subject.preferences = { color: 'orange' }
60
56
  expect(subject.preferred_color).to eq "red"
61
57
  end
62
58
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Preferences::Store, :type => :model do
3
+ describe Spree::Preferences::Store, type: :model do
4
4
  before :each do
5
5
  @store = Spree::Preferences::StoreInstance.new
6
6
  end
@@ -17,7 +17,7 @@ describe Spree::Preferences::Store, :type => :model do
17
17
  end
18
18
 
19
19
  it "will return db value when cache is emtpy and cache the db value" do
20
- preference = Spree::Preference.where(:key => 'test').first_or_initialize
20
+ preference = Spree::Preference.where(key: 'test').first_or_initialize
21
21
  preference.value = '123'
22
22
  preference.save
23
23
 
@@ -35,5 +35,4 @@ describe Spree::Preferences::Store, :type => :model do
35
35
  it "should return nil when key can't be found and fallback value is not supplied" do
36
36
  expect(@store.get(:random_key){ nil }).to be_nil
37
37
  end
38
-
39
38
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::Price, :type => :model do
3
+ describe Spree::Price, type: :model do
4
4
  describe 'validations' do
5
5
  let(:variant) { stub_model Spree::Variant }
6
6
  subject { Spree::Price.new variant: variant, amount: amount }
@@ -22,20 +22,20 @@ describe Spree::Price, :type => :model do
22
22
  end
23
23
  end
24
24
 
25
- context 'when the amount is greater than 999,999.99' do
26
- let(:amount) { 1_000_000 }
25
+ context 'when the amount is greater than maximum amount' do
26
+ let(:amount) { Spree::Price::MAXIMUM_AMOUNT + 1 }
27
27
 
28
28
  it 'has 1 error_on' do
29
29
  expect(subject.error_on(:amount).size).to eq(1)
30
30
  end
31
31
  it 'populates errors' do
32
32
  subject.valid?
33
- expect(subject.errors.messages[:amount].first).to eq 'must be less than or equal to 999999.99'
33
+ expect(subject.errors.messages[:amount].first).to eq "must be less than or equal to #{Spree::Price::MAXIMUM_AMOUNT}"
34
34
  end
35
35
  end
36
36
 
37
- context 'when the amount is between 0 and 999,999.99' do
38
- let(:amount) { 100 }
37
+ context 'when the amount is between 0 and the maximum amount' do
38
+ let(:amount) { Spree::Price::MAXIMUM_AMOUNT }
39
39
  it { is_expected.to be_valid }
40
40
  end
41
41
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Product scopes", :type => :model do
3
+ describe "Product scopes", type: :model do
4
4
  let!(:product) { create(:product) }
5
5
 
6
6
  context "A product assigned to parent and child taxons" do
@@ -8,8 +8,8 @@ describe "Product scopes", :type => :model do
8
8
  @taxonomy = create(:taxonomy)
9
9
  @root_taxon = @taxonomy.root
10
10
 
11
- @parent_taxon = create(:taxon, :name => 'Parent', :taxonomy_id => @taxonomy.id, :parent => @root_taxon)
12
- @child_taxon = create(:taxon, :name =>'Child 1', :taxonomy_id => @taxonomy.id, :parent => @parent_taxon)
11
+ @parent_taxon = create(:taxon, name: 'Parent', taxonomy_id: @taxonomy.id, parent: @root_taxon)
12
+ @child_taxon = create(:taxon, name: 'Child 1', taxonomy_id: @taxonomy.id, parent: @parent_taxon)
13
13
  @parent_taxon.reload # Need to reload for descendents to show up
14
14
 
15
15
  product.taxons << @parent_taxon
@@ -24,7 +24,7 @@ describe "Product scopes", :type => :model do
24
24
  end
25
25
 
26
26
  it "calling Product.in_taxon should not return duplicate records" do
27
- expect(Spree::Product.in_taxon(@parent_taxon).to_a.count).to eq(1)
27
+ expect(Spree::Product.in_taxon(@parent_taxon).to_a.size).to eq(1)
28
28
  end
29
29
 
30
30
  context 'orders products based on their ordering within the classifications' do
@@ -38,7 +38,7 @@ describe "Product scopes", :type => :model do
38
38
 
39
39
  it 'after ordering changed' do
40
40
  [@child_taxon, other_taxon].each do |taxon|
41
- Spree::Classification.find_by(:taxon => taxon, :product => product).insert_at(2)
41
+ Spree::Classification.find_by(taxon: taxon, product: product).insert_at(2)
42
42
  expect(Spree::Product.in_taxon(taxon)).to eq([product_2, product])
43
43
  end
44
44
  end
@@ -47,8 +47,8 @@ describe "Product scopes", :type => :model do
47
47
 
48
48
  context "property scopes" do
49
49
  let(:name) { "A proper tee" }
50
- let(:value) { "A proper value"}
51
- let!(:property) { create(:property, name: name)}
50
+ let(:value) { "A proper value" }
51
+ let!(:property) { create(:property, name: name) }
52
52
 
53
53
  before do
54
54
  product.properties << property
@@ -58,58 +58,58 @@ describe "Product scopes", :type => :model do
58
58
  context "with_property" do
59
59
  let(:with_property) { Spree::Product.method(:with_property) }
60
60
  it "finds by a property's name" do
61
- expect(with_property.(name).count).to eq(1)
61
+ expect(with_property.call(name).count).to eq(1)
62
62
  end
63
63
 
64
64
  it "doesn't find any properties with an unknown name" do
65
- expect(with_property.("fake").count).to eq(0)
65
+ expect(with_property.call("fake").count).to eq(0)
66
66
  end
67
67
 
68
68
  it "finds by a property" do
69
- expect(with_property.(property).count).to eq(1)
69
+ expect(with_property.call(property).count).to eq(1)
70
70
  end
71
71
 
72
72
  it "finds by an id" do
73
- expect(with_property.(property.id).count).to eq(1)
73
+ expect(with_property.call(property.id).count).to eq(1)
74
74
  end
75
75
 
76
76
  it "cannot find a property with an unknown id" do
77
- expect(with_property.(0).count).to eq(0)
77
+ expect(with_property.call(0).count).to eq(0)
78
78
  end
79
79
  end
80
80
 
81
81
  context "with_property_value" do
82
82
  let(:with_property_value) { Spree::Product.method(:with_property_value) }
83
83
  it "finds by a property's name" do
84
- expect(with_property_value.(name, value).count).to eq(1)
84
+ expect(with_property_value.call(name, value).count).to eq(1)
85
85
  end
86
86
 
87
87
  it "cannot find by an unknown property's name" do
88
- expect(with_property_value.("fake", value).count).to eq(0)
88
+ expect(with_property_value.call("fake", value).count).to eq(0)
89
89
  end
90
90
 
91
91
  it "cannot find with a name by an incorrect value" do
92
- expect(with_property_value.(name, "fake").count).to eq(0)
92
+ expect(with_property_value.call(name, "fake").count).to eq(0)
93
93
  end
94
94
 
95
95
  it "finds by a property" do
96
- expect(with_property_value.(property, value).count).to eq(1)
96
+ expect(with_property_value.call(property, value).count).to eq(1)
97
97
  end
98
98
 
99
99
  it "cannot find with a property by an incorrect value" do
100
- expect(with_property_value.(property, "fake").count).to eq(0)
100
+ expect(with_property_value.call(property, "fake").count).to eq(0)
101
101
  end
102
102
 
103
103
  it "finds by an id with a value" do
104
- expect(with_property_value.(property.id, value).count).to eq(1)
104
+ expect(with_property_value.call(property.id, value).count).to eq(1)
105
105
  end
106
106
 
107
107
  it "cannot find with an invalid id" do
108
- expect(with_property_value.(0, value).count).to eq(0)
108
+ expect(with_property_value.call(0, value).count).to eq(0)
109
109
  end
110
110
 
111
111
  it "cannot find with an invalid value" do
112
- expect(with_property_value.(property.id, "fake").count).to eq(0)
112
+ expect(with_property_value.call(property.id, "fake").count).to eq(0)
113
113
  end
114
114
  end
115
115
  end
@@ -1,53 +1,43 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
-
5
- describe Spree::ProductDuplicator, :type => :model do
6
-
7
- let(:product) { create(:product, properties: [create(:property, name: "MyProperty")])}
8
- let!(:duplicator) { Spree::ProductDuplicator.new(product)}
4
+ describe Spree::ProductDuplicator, type: :model do
5
+ let(:product) { create(:product, properties: [create(:property, name: "MyProperty")]) }
6
+ let!(:duplicator) { Spree::ProductDuplicator.new(product) }
9
7
 
10
8
  let(:image) { File.open(File.expand_path('../../../fixtures/thinking-cat.jpg', __FILE__)) }
11
- let(:params) { {:viewable_id => product.master.id, :viewable_type => 'Spree::Variant', :attachment => image, :alt => "position 1", :position => 1} }
9
+ let(:params) { { viewable_id: product.master.id, viewable_type: 'Spree::Variant', attachment: image, alt: "position 1", position: 1 } }
12
10
 
13
11
  before do
14
12
  Spree::Image.create(params)
15
13
  end
16
14
 
17
15
  it "will duplicate the product" do
18
- expect{duplicator.duplicate}.to change{Spree::Product.count}.by(1)
16
+ expect{ duplicator.duplicate }.to change{ Spree::Product.count }.by(1)
19
17
  end
20
18
 
21
19
  context 'when image duplication enabled' do
22
-
23
20
  it "will duplicate the product images" do
24
- expect{duplicator.duplicate}.to change{Spree::Image.count}.by(1)
21
+ expect{ duplicator.duplicate }.to change{ Spree::Image.count }.by(1)
25
22
  end
26
-
27
23
  end
28
24
 
29
25
  context 'when image duplication disabled' do
30
-
31
26
  let!(:duplicator) { Spree::ProductDuplicator.new(product, false) }
32
27
 
33
28
  it "will not duplicate the product images" do
34
- expect{duplicator.duplicate}.to change{Spree::Image.count}.by(0)
29
+ expect{ duplicator.duplicate }.to change{ Spree::Image.count }.by(0)
35
30
  end
36
-
37
31
  end
38
32
 
39
33
  context 'image duplication default' do
40
-
41
34
  context 'when default is set to true' do
42
-
43
35
  it 'clones images if no flag passed to initializer' do
44
- expect{duplicator.duplicate}.to change{Spree::Image.count}.by(1)
36
+ expect{ duplicator.duplicate }.to change{ Spree::Image.count }.by(1)
45
37
  end
46
-
47
38
  end
48
39
 
49
40
  context 'when default is set to false' do
50
-
51
41
  before do
52
42
  ProductDuplicator.clone_images_default = false
53
43
  end
@@ -57,15 +47,13 @@ module Spree
57
47
  end
58
48
 
59
49
  it 'does not clone images if no flag passed to initializer' do
60
- expect{ProductDuplicator.new(product).duplicate}.to change{Spree::Image.count}.by(0)
50
+ expect{ ProductDuplicator.new(product).duplicate }.to change{ Spree::Image.count }.by(0)
61
51
  end
62
-
63
52
  end
64
-
65
53
  end
66
54
 
67
55
  context "product attributes" do
68
- let!(:new_product) {duplicator.duplicate}
56
+ let!(:new_product) { duplicator.duplicate }
69
57
 
70
58
  it "will set an unique name" do
71
59
  expect(new_product.name).to eql "COPY OF #{product.name}"
@@ -82,22 +70,21 @@ module Spree
82
70
  end
83
71
 
84
72
  context "with variants" do
85
- let(:option_type) { create(:option_type, name: "MyOptionType")}
86
- let(:option_value1) { create(:option_value, name: "OptionValue1", option_type: option_type)}
87
- let(:option_value2) { create(:option_value, name: "OptionValue2", option_type: option_type)}
73
+ let(:option_type) { create(:option_type, name: "MyOptionType") }
74
+ let(:option_value1) { create(:option_value, name: "OptionValue1", option_type: option_type) }
75
+ let(:option_value2) { create(:option_value, name: "OptionValue2", option_type: option_type) }
88
76
 
89
77
  let!(:variant1) { create(:variant, product: product, option_values: [option_value1]) }
90
78
  let!(:variant2) { create(:variant, product: product, option_values: [option_value2]) }
91
79
 
92
- it "will duplciate the variants" do
80
+ it "will duplciate the variants" do
93
81
  # will change the count by 3, since there will be a master variant as well
94
- expect{duplicator.duplicate}.to change{Spree::Variant.count}.by(3)
82
+ expect{ duplicator.duplicate }.to change{ Spree::Variant.count }.by(3)
95
83
  end
96
84
 
97
85
  it "will not duplicate the option values" do
98
- expect{duplicator.duplicate}.to change{Spree::OptionValue.count}.by(0)
86
+ expect{ duplicator.duplicate }.to change{ Spree::OptionValue.count }.by(0)
99
87
  end
100
-
101
88
  end
102
89
  end
103
90
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
  require 'spree/core/product_filters'
3
3
 
4
- describe 'product filters', :type => :model do
4
+ describe 'product filters', type: :model do
5
5
  # Regression test for https://github.com/spree/spree/issues/1709
6
6
  context 'finds products filtered by brand' do
7
7
  let(:product) { create(:product) }
8
8
  before do
9
- property = Spree::Property.create!(:name => "brand", :presentation => "brand")
9
+ Spree::Property.create!(name: "brand", presentation: "brand")
10
10
  product.set_property("brand", "Nike")
11
11
  end
12
12