solidus_core 2.10.5 → 3.0.8

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 (618) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +0 -22
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/helpers/spree/store_helper.rb +0 -11
  5. data/app/mailers/spree/base_mailer.rb +4 -0
  6. data/app/mailers/spree/carton_mailer.rb +1 -5
  7. data/app/mailers/spree/order_mailer.rb +1 -1
  8. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +71 -0
  9. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  10. data/app/models/concerns/spree/active_storage_adapter.rb +118 -0
  11. data/app/models/concerns/spree/adjustment_source.rb +0 -15
  12. data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
  13. data/app/models/concerns/spree/default_price.rb +1 -1
  14. data/app/models/concerns/spree/soft_deletable.rb +16 -0
  15. data/app/models/concerns/spree/user_address_book.rb +61 -44
  16. data/app/models/concerns/spree/user_methods.rb +23 -12
  17. data/app/models/spree/ability.rb +0 -13
  18. data/app/models/spree/address/name.rb +31 -0
  19. data/app/models/spree/address/state_validator.rb +71 -0
  20. data/app/models/spree/address.rb +17 -95
  21. data/app/models/spree/adjustment.rb +1 -29
  22. data/app/models/spree/base.rb +1 -28
  23. data/app/models/spree/calculator/default_tax.rb +1 -1
  24. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  25. data/app/models/spree/calculator.rb +8 -11
  26. data/app/models/spree/country.rb +1 -6
  27. data/app/models/spree/credit_card.rb +2 -29
  28. data/app/models/spree/customer_return.rb +5 -6
  29. data/app/models/spree/exchange.rb +1 -1
  30. data/app/models/spree/image/active_storage_attachment.rb +29 -0
  31. data/app/models/spree/image/paperclip_attachment.rb +1 -1
  32. data/app/models/spree/image.rb +0 -7
  33. data/app/models/spree/inventory_unit.rb +1 -22
  34. data/app/models/spree/line_item.rb +12 -46
  35. data/app/models/spree/log_entry.rb +74 -1
  36. data/app/models/spree/option_type.rb +1 -1
  37. data/app/models/spree/option_value.rb +2 -2
  38. data/app/models/spree/order/payments.rb +2 -2
  39. data/app/models/spree/order.rb +70 -132
  40. data/app/models/spree/order_cancellations.rb +4 -24
  41. data/app/models/spree/order_inventory.rb +16 -4
  42. data/app/models/spree/order_merger.rb +7 -5
  43. data/app/models/spree/order_promotion.rb +1 -1
  44. data/app/models/spree/order_shipping.rb +6 -9
  45. data/app/models/spree/order_updater.rb +7 -15
  46. data/app/models/spree/payment/cancellation.rb +3 -22
  47. data/app/models/spree/payment/processing.rb +54 -30
  48. data/app/models/spree/payment.rb +13 -9
  49. data/app/models/spree/payment_create.rb +1 -13
  50. data/app/models/spree/payment_method/bogus_credit_card.rb +13 -9
  51. data/app/models/spree/payment_method/credit_card.rb +1 -3
  52. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +4 -4
  53. data/app/models/spree/payment_method.rb +7 -106
  54. data/app/models/spree/payment_source.rb +2 -2
  55. data/app/models/spree/preference.rb +1 -1
  56. data/app/models/spree/price.rb +3 -9
  57. data/app/models/spree/product/scopes.rb +9 -32
  58. data/app/models/spree/product.rb +24 -52
  59. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  60. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  61. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  62. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  63. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  64. data/app/models/spree/promotion.rb +15 -8
  65. data/app/models/spree/promotion_action.rb +5 -15
  66. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  67. data/app/models/spree/promotion_code.rb +8 -3
  68. data/app/models/spree/promotion_code_batch.rb +1 -1
  69. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  70. data/app/models/spree/promotion_rule.rb +5 -1
  71. data/app/models/spree/promotion_rule_role.rb +1 -1
  72. data/app/models/spree/refund.rb +19 -13
  73. data/app/models/spree/reimbursement.rb +11 -22
  74. data/app/models/spree/reimbursement_performer.rb +2 -8
  75. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  76. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +8 -2
  77. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  78. data/app/models/spree/return_authorization.rb +2 -5
  79. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  80. data/app/models/spree/return_item.rb +10 -18
  81. data/app/models/spree/role.rb +1 -1
  82. data/app/models/spree/shipment.rb +3 -56
  83. data/app/models/spree/shipping_calculator.rb +1 -1
  84. data/app/models/spree/shipping_manifest.rb +2 -2
  85. data/app/models/spree/shipping_method.rb +3 -35
  86. data/app/models/spree/shipping_rate.rb +1 -3
  87. data/app/models/spree/shipping_rate_tax.rb +1 -1
  88. data/app/models/spree/state.rb +0 -4
  89. data/app/models/spree/stock/availability_validator.rb +2 -2
  90. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  91. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  92. data/app/models/spree/stock/inventory_validator.rb +2 -2
  93. data/app/models/spree/stock/package.rb +1 -1
  94. data/app/models/spree/stock/simple_coordinator.rb +7 -18
  95. data/app/models/spree/stock/splitter/base.rb +2 -7
  96. data/app/models/spree/stock_item.rb +3 -15
  97. data/app/models/spree/stock_movement.rb +2 -0
  98. data/app/models/spree/store.rb +1 -13
  99. data/app/models/spree/store_credit.rb +9 -7
  100. data/app/models/spree/store_credit_category.rb +3 -8
  101. data/app/models/spree/store_credit_event.rb +1 -7
  102. data/app/models/spree/store_credit_reason.rb +0 -4
  103. data/app/models/spree/tax/tax_helpers.rb +1 -1
  104. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  105. data/app/models/spree/tax_category.rb +2 -8
  106. data/app/models/spree/tax_rate.rb +7 -34
  107. data/app/models/spree/taxon/active_storage_attachment.rb +13 -0
  108. data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
  109. data/app/models/spree/taxon.rb +1 -12
  110. data/app/models/spree/user_address.rb +3 -2
  111. data/app/models/spree/variant.rb +8 -58
  112. data/app/models/spree/variant_property_rule.rb +5 -1
  113. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  114. data/app/models/spree/zone.rb +1 -1
  115. data/config/locales/en.yml +293 -13
  116. data/db/default/spree/countries.rb +1 -1
  117. data/db/default/spree/states.rb +12 -4
  118. data/db/default/spree/store_credit.rb +2 -2
  119. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  120. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  121. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  122. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  123. data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
  124. data/lib/generators/{spree → solidus}/install/install_generator.rb +82 -14
  125. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +4 -9
  126. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  127. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  128. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  129. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  130. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  131. data/lib/spree/app_configuration.rb +104 -72
  132. data/lib/spree/core/class_constantizer.rb +2 -0
  133. data/lib/spree/core/controller_helpers/auth.rb +4 -4
  134. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  135. data/lib/spree/core/controller_helpers/order.rb +8 -27
  136. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  137. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  138. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  139. data/lib/spree/core/engine.rb +23 -8
  140. data/lib/spree/core/environment_extension.rb +0 -9
  141. data/lib/spree/core/importer/order.rb +24 -10
  142. data/lib/spree/core/permalinks.rb +1 -3
  143. data/lib/spree/core/product_filters.rb +5 -44
  144. data/lib/spree/core/role_configuration.rb +0 -14
  145. data/lib/spree/core/search/base.rb +0 -26
  146. data/lib/spree/core/state_machines/order.rb +249 -0
  147. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  148. data/lib/spree/core/state_machines.rb +11 -1
  149. data/lib/spree/core/validators/email.rb +2 -2
  150. data/lib/spree/core/version.rb +1 -1
  151. data/lib/spree/core.rb +11 -19
  152. data/lib/spree/deprecation.rb +1 -1
  153. data/lib/spree/encryptor.rb +25 -0
  154. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  155. data/lib/spree/event/configuration.rb +7 -7
  156. data/lib/spree/event/subscriber.rb +22 -20
  157. data/lib/spree/event/subscriber_registry.rb +94 -0
  158. data/lib/spree/event.rb +20 -18
  159. data/lib/spree/i18n.rb +0 -22
  160. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  161. data/lib/spree/money.rb +3 -18
  162. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  163. data/lib/spree/permission_sets/default_customer.rb +16 -16
  164. data/lib/spree/permission_sets/order_display.rb +11 -11
  165. data/lib/spree/permission_sets/order_management.rb +1 -1
  166. data/lib/spree/permission_sets/product_display.rb +9 -9
  167. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  168. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  169. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  170. data/lib/spree/permission_sets/stock_display.rb +2 -2
  171. data/lib/spree/permission_sets/stock_management.rb +1 -1
  172. data/lib/spree/permission_sets/user_display.rb +3 -3
  173. data/lib/spree/permission_sets/user_management.rb +4 -3
  174. data/lib/spree/permitted_attributes.rb +12 -56
  175. data/lib/spree/preferences/persistable.rb +23 -0
  176. data/lib/spree/preferences/preferable.rb +4 -3
  177. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  178. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  179. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  180. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  181. data/lib/spree/testing_support/capybara_ext.rb +3 -30
  182. data/lib/spree/testing_support/common_rake.rb +3 -3
  183. data/lib/spree/testing_support/controller_requests.rb +0 -82
  184. data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
  185. data/lib/spree/testing_support/dummy_app/migrations.rb +2 -6
  186. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  187. data/lib/spree/testing_support/dummy_app.rb +41 -24
  188. data/lib/spree/testing_support/factories/address_factory.rb +7 -4
  189. data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
  190. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
  191. data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
  192. data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
  193. data/lib/spree/testing_support/factories/country_factory.rb +5 -0
  194. data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
  195. data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
  196. data/lib/spree/testing_support/factories/image_factory.rb +6 -1
  197. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
  198. data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
  199. data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
  200. data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
  201. data/lib/spree/testing_support/factories/order_factory.rb +11 -7
  202. data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
  203. data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
  204. data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
  205. data/lib/spree/testing_support/factories/price_factory.rb +6 -1
  206. data/lib/spree/testing_support/factories/product_factory.rb +10 -5
  207. data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
  208. data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
  209. data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
  210. data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
  211. data/lib/spree/testing_support/factories/promotion_factory.rb +13 -2
  212. data/lib/spree/testing_support/factories/property_factory.rb +5 -0
  213. data/lib/spree/testing_support/factories/refund_factory.rb +7 -2
  214. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  215. data/lib/spree/testing_support/factories/reimbursement_factory.rb +7 -2
  216. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
  217. data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
  218. data/lib/spree/testing_support/factories/return_item_factory.rb +8 -4
  219. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  220. data/lib/spree/testing_support/factories/role_factory.rb +5 -0
  221. data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
  222. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  223. data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
  224. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
  225. data/lib/spree/testing_support/factories/state_factory.rb +7 -1
  226. data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
  227. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
  228. data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
  229. data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
  230. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +13 -0
  231. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -2
  232. data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
  233. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +8 -1
  234. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
  235. data/lib/spree/testing_support/factories/store_factory.rb +6 -1
  236. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
  237. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
  238. data/lib/spree/testing_support/factories/taxon_factory.rb +10 -1
  239. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  240. data/lib/spree/testing_support/factories/user_factory.rb +14 -3
  241. data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
  242. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
  243. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
  244. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
  245. data/lib/spree/testing_support/factories/zone_factory.rb +8 -3
  246. data/lib/spree/testing_support/factories.rb +8 -4
  247. data/lib/spree/testing_support/factory_bot.rb +68 -0
  248. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  249. data/lib/spree/testing_support/fixtures/file.txt +1 -0
  250. data/lib/spree/testing_support/job_helpers.rb +24 -0
  251. data/lib/spree/testing_support/order_walkthrough.rb +10 -13
  252. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  253. data/lib/spree/testing_support/preferences.rb +0 -23
  254. data/lib/spree/testing_support/sequences.rb +4 -1
  255. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  256. data/lib/spree/testing_support/translations.rb +25 -0
  257. data/lib/spree/testing_support.rb +31 -0
  258. data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
  259. data/lib/tasks/upgrade.rake +15 -0
  260. data/solidus_core.gemspec +30 -7
  261. metadata +137 -408
  262. data/app/mailers/spree/test_mailer.rb +0 -13
  263. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  264. data/app/models/spree/calculator/free_shipping.rb +0 -21
  265. data/app/models/spree/calculator/percent_per_item.rb +0 -49
  266. data/app/models/spree/calculator/price_sack.rb +0 -27
  267. data/app/models/spree/gateway/bogus.rb +0 -13
  268. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  269. data/app/models/spree/gateway.rb +0 -14
  270. data/app/models/spree/order/checkout.rb +0 -243
  271. data/app/models/spree/order_capturing.rb +0 -50
  272. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  273. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  274. data/lib/spree/core/current_store.rb +0 -24
  275. data/lib/spree/paranoia_deprecations.rb +0 -21
  276. data/lib/spree/promo/environment.rb +0 -12
  277. data/lib/spree/testing_support/bar_ability.rb +0 -19
  278. data/lib/tasks/core.rake +0 -104
  279. data/lib/tasks/email.rake +0 -11
  280. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  281. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  282. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  283. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  284. data/lib/tasks/order_capturing.rake +0 -27
  285. data/script/rails +0 -10
  286. data/spec/fixtures/thinking-cat.jpg +0 -0
  287. data/spec/helpers/base_helper_spec.rb +0 -168
  288. data/spec/helpers/products_helper_spec.rb +0 -202
  289. data/spec/helpers/taxons_helper_spec.rb +0 -43
  290. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  291. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  292. data/spec/lib/i18n_spec.rb +0 -97
  293. data/spec/lib/search/base_spec.rb +0 -91
  294. data/spec/lib/search/variant_spec.rb +0 -115
  295. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  296. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  297. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  298. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  299. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  300. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  301. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  302. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  303. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  304. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  305. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  306. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  307. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  308. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  309. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  310. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  311. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  312. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  313. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  314. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  315. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  316. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  317. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  318. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  319. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  320. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  321. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  322. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  323. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  324. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  325. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  326. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  327. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  328. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  329. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  330. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  331. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  332. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  333. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  334. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  335. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  336. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  337. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  338. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  339. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  340. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  341. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  342. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  343. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  344. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  345. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  346. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  347. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  348. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  349. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  350. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  351. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  352. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  353. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  354. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  355. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  356. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  357. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  358. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  359. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  360. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  361. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  362. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  363. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  364. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  365. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  366. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  367. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  368. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  369. data/spec/lib/spree/core/version_spec.rb +0 -19
  370. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  371. data/spec/lib/spree/event_spec.rb +0 -130
  372. data/spec/lib/spree/localized_number_spec.rb +0 -45
  373. data/spec/lib/spree/migrations_spec.rb +0 -32
  374. data/spec/lib/spree/money_spec.rb +0 -298
  375. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  376. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  377. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  378. data/spec/lib/tasks/dummy_task.rake +0 -12
  379. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  380. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  381. data/spec/mailers/carton_mailer_spec.rb +0 -44
  382. data/spec/mailers/order_mailer_spec.rb +0 -117
  383. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  384. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  385. data/spec/mailers/test_mailer_spec.rb +0 -13
  386. data/spec/models/spree/ability_spec.rb +0 -279
  387. data/spec/models/spree/address_spec.rb +0 -399
  388. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  389. data/spec/models/spree/adjustment_spec.rb +0 -339
  390. data/spec/models/spree/asset_spec.rb +0 -25
  391. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  392. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  393. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  394. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  395. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  396. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  397. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  398. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  399. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  400. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  401. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  402. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  403. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  404. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  405. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  406. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  407. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  408. data/spec/models/spree/calculator_spec.rb +0 -43
  409. data/spec/models/spree/carton_spec.rb +0 -145
  410. data/spec/models/spree/classification_spec.rb +0 -126
  411. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  412. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  413. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  414. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  415. data/spec/models/spree/country_spec.rb +0 -154
  416. data/spec/models/spree/credit_card_spec.rb +0 -373
  417. data/spec/models/spree/customer_return_spec.rb +0 -294
  418. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  419. data/spec/models/spree/exchange_spec.rb +0 -76
  420. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  421. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  422. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  423. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  424. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  425. data/spec/models/spree/gateway_spec.rb +0 -14
  426. data/spec/models/spree/image_spec.rb +0 -25
  427. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  428. data/spec/models/spree/line_item_spec.rb +0 -240
  429. data/spec/models/spree/option_type_spec.rb +0 -16
  430. data/spec/models/spree/option_value_spec.rb +0 -52
  431. data/spec/models/spree/order/address_spec.rb +0 -52
  432. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  433. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  434. data/spec/models/spree/order/checkout_spec.rb +0 -740
  435. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  436. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  437. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  438. data/spec/models/spree/order/payment_spec.rb +0 -280
  439. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  440. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  441. data/spec/models/spree/order/totals_spec.rb +0 -26
  442. data/spec/models/spree/order/validations_spec.rb +0 -17
  443. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  444. data/spec/models/spree/order_capturing_spec.rb +0 -16
  445. data/spec/models/spree/order_contents_spec.rb +0 -362
  446. data/spec/models/spree/order_inventory_spec.rb +0 -285
  447. data/spec/models/spree/order_merger_spec.rb +0 -162
  448. data/spec/models/spree/order_mutex_spec.rb +0 -89
  449. data/spec/models/spree/order_promotion_spec.rb +0 -33
  450. data/spec/models/spree/order_shipping_spec.rb +0 -247
  451. data/spec/models/spree/order_spec.rb +0 -1687
  452. data/spec/models/spree/order_taxation_spec.rb +0 -128
  453. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  454. data/spec/models/spree/order_updater_spec.rb +0 -556
  455. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  456. data/spec/models/spree/payment_create_spec.rb +0 -195
  457. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  458. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  459. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  460. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  461. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  462. data/spec/models/spree/payment_method_spec.rb +0 -408
  463. data/spec/models/spree/payment_spec.rb +0 -1270
  464. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  465. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  466. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  467. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  468. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  469. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  470. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  471. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  472. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  473. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  474. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  475. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  476. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  477. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  478. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  479. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  480. data/spec/models/spree/preference_spec.rb +0 -79
  481. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  482. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  483. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  484. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  485. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  486. data/spec/models/spree/preferences/store_spec.rb +0 -40
  487. data/spec/models/spree/price_spec.rb +0 -150
  488. data/spec/models/spree/product/scopes_spec.rb +0 -164
  489. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  490. data/spec/models/spree/product_filter_spec.rb +0 -28
  491. data/spec/models/spree/product_property_spec.rb +0 -20
  492. data/spec/models/spree/product_spec.rb +0 -584
  493. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  494. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  495. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  496. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  497. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  498. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  499. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  500. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  501. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  502. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  503. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  504. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  505. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  506. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  507. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  508. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  509. data/spec/models/spree/promotion_action_spec.rb +0 -44
  510. data/spec/models/spree/promotion_category_spec.rb +0 -19
  511. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  512. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  513. data/spec/models/spree/promotion_code_spec.rb +0 -206
  514. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  515. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  516. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  517. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  518. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  519. data/spec/models/spree/promotion_spec.rb +0 -945
  520. data/spec/models/spree/refund_spec.rb +0 -200
  521. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  522. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  523. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  524. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  525. data/spec/models/spree/reimbursement_spec.rb +0 -278
  526. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  527. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  528. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  529. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  530. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  531. data/spec/models/spree/return_authorization_spec.rb +0 -226
  532. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  533. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  534. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  535. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  536. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  537. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  538. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  539. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  540. data/spec/models/spree/return_item_spec.rb +0 -785
  541. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  542. data/spec/models/spree/shipment_spec.rb +0 -914
  543. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  544. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  545. data/spec/models/spree/shipping_method_spec.rb +0 -292
  546. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  547. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  548. data/spec/models/spree/state_spec.rb +0 -43
  549. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  550. data/spec/models/spree/stock/availability_spec.rb +0 -143
  551. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  552. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  553. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  554. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  555. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  556. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  557. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  558. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  559. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  560. data/spec/models/spree/stock/package_spec.rb +0 -182
  561. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  562. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  563. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  564. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  565. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  566. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  567. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  568. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  569. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  570. data/spec/models/spree/stock_item_spec.rb +0 -348
  571. data/spec/models/spree/stock_location_spec.rb +0 -288
  572. data/spec/models/spree/stock_movement_spec.rb +0 -58
  573. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  574. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  575. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  576. data/spec/models/spree/store_credit_spec.rb +0 -900
  577. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  578. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  579. data/spec/models/spree/store_spec.rb +0 -156
  580. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  581. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  582. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  583. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  584. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  585. data/spec/models/spree/tax_category_spec.rb +0 -50
  586. data/spec/models/spree/tax_rate_spec.rb +0 -317
  587. data/spec/models/spree/taxon_spec.rb +0 -197
  588. data/spec/models/spree/taxonomy_spec.rb +0 -15
  589. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  590. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  591. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  592. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  593. data/spec/models/spree/user_spec.rb +0 -247
  594. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  595. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  596. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  597. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  598. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  599. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  600. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  601. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  602. data/spec/models/spree/variant_spec.rb +0 -862
  603. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  604. data/spec/models/spree/wallet_spec.rb +0 -155
  605. data/spec/models/spree/zone_spec.rb +0 -248
  606. data/spec/rails_helper.rb +0 -46
  607. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  608. data/spec/spec_helper.rb +0 -36
  609. data/spec/support/big_decimal.rb +0 -7
  610. data/spec/support/concerns/default_price.rb +0 -44
  611. data/spec/support/concerns/payment_source.rb +0 -66
  612. data/spec/support/concerns/working_factories.rb +0 -15
  613. data/spec/support/dummy_ability.rb +0 -7
  614. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  615. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  616. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  617. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  618. /data/{app/models → lib}/spree/user_class_handle.rb +0 -0
@@ -1,339 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Adjustment, type: :model do
6
- let!(:store) { create :store }
7
- let(:order) { Spree::Order.new }
8
- let(:line_item) { create :line_item, order: order }
9
-
10
- let(:adjustment) { Spree::Adjustment.create!(label: 'Adjustment', adjustable: order, order: order, amount: 5) }
11
-
12
- context '#save' do
13
- let(:adjustment) { Spree::Adjustment.create(label: "Adjustment", amount: 5, order: order, adjustable: line_item) }
14
-
15
- it 'touches the adjustable' do
16
- line_item.update_columns(updated_at: 1.day.ago)
17
- expect { adjustment.save! }.to change { line_item.updated_at }
18
- end
19
- end
20
-
21
- describe 'non_tax scope' do
22
- subject do
23
- Spree::Adjustment.non_tax.to_a
24
- end
25
-
26
- let!(:tax_adjustment) do
27
- create(:adjustment, adjustable: order, order: order, source: create(:tax_rate))
28
- end
29
-
30
- let!(:non_tax_adjustment_with_source) do
31
- create(:adjustment, adjustable: order, order: order, source_type: 'Spree::Order', source_id: nil)
32
- end
33
-
34
- let!(:non_tax_adjustment_without_source) do
35
- create(:adjustment, adjustable: order, order: order, source: nil)
36
- end
37
-
38
- it 'select non-tax adjustments' do
39
- expect(subject).to_not include tax_adjustment
40
- expect(subject).to include non_tax_adjustment_with_source
41
- expect(subject).to include non_tax_adjustment_without_source
42
- end
43
- end
44
-
45
- context '#currency' do
46
- let(:order) { Spree::Order.new currency: 'JPY' }
47
-
48
- it 'returns the adjustables currency' do
49
- expect(adjustment.currency).to eq 'JPY'
50
- end
51
-
52
- context 'adjustable is nil' do
53
- before do
54
- adjustment.adjustable = nil
55
- end
56
- it 'uses the global currency of USD' do
57
- expect(adjustment.currency).to eq 'USD'
58
- end
59
- end
60
- end
61
-
62
- context "#display_amount" do
63
- before { adjustment.amount = 10.55 }
64
-
65
- it "shows the amount" do
66
- expect(adjustment.display_amount.to_s).to eq "$10.55"
67
- end
68
-
69
- context "with currency set to JPY" do
70
- let(:order) { Spree::Order.new currency: 'JPY' }
71
-
72
- context "when adjustable is set to an order" do
73
- it "displays in JPY" do
74
- expect(adjustment.display_amount.to_s).to eq "¥11"
75
- end
76
- end
77
- end
78
- end
79
-
80
- context '#recalculate' do
81
- subject { adjustment.recalculate }
82
- let(:adjustment) do
83
- line_item.adjustments.create!(
84
- label: 'Adjustment',
85
- order: order,
86
- adjustable: order,
87
- amount: 5,
88
- finalized: finalized,
89
- source: source,
90
- )
91
- end
92
- let(:order) { create(:order_with_line_items, line_items_price: 100) }
93
- let(:line_item) { order.line_items.to_a.first }
94
-
95
- context "when adjustment is finalized" do
96
- let(:finalized) { true }
97
-
98
- context 'with a promotion adjustment' do
99
- let(:source) { promotion.actions.first! }
100
- let(:promotion) { create(:promotion, :with_line_item_adjustment, adjustment_rate: 7) }
101
-
102
- it 'does not update the adjustment' do
103
- expect { subject }.not_to change { adjustment.amount }
104
- end
105
- end
106
-
107
- context 'with a tax adjustment' do
108
- let(:source) { mock_model(Spree::TaxRate, compute_amount: 10) }
109
-
110
- it 'updates the adjustment' do
111
- expect { subject }.to change { adjustment.amount }.from(5).to(10)
112
- end
113
- end
114
-
115
- context 'with a sourceless adjustment' do
116
- let(:source) { nil }
117
-
118
- it 'does nothing' do
119
- expect { subject }.not_to change { adjustment.amount }
120
- end
121
- end
122
- end
123
-
124
- context "when adjustment isn't finalized" do
125
- let(:finalized) { false }
126
-
127
- context 'with a promotion adjustment' do
128
- let(:source) { promotion.actions.first! }
129
- let(:promotion) { create(:promotion, :with_line_item_adjustment, adjustment_rate: 7) }
130
-
131
- context 'when the promotion is eligible' do
132
- it 'updates the adjustment' do
133
- expect { subject }.to change { adjustment.amount }.from(5).to(-7)
134
- end
135
-
136
- it 'sets the adjustment elgiible to true' do
137
- subject
138
- expect(adjustment.eligible).to eq(true)
139
- end
140
- end
141
-
142
- context 'when the promotion is not eligible' do
143
- before do
144
- promotion.update!(starts_at: 1.day.from_now)
145
- end
146
-
147
- it 'zeros out the adjustment' do
148
- expect { subject }.to change { adjustment.amount }.from(5).to(0)
149
- end
150
-
151
- it 'sets the adjustment elgiible to false' do
152
- subject
153
- expect(adjustment.eligible).to eq(false)
154
- end
155
- end
156
- end
157
-
158
- context 'with a tax adjustment' do
159
- let(:source) { mock_model(Spree::TaxRate, compute_amount: 10) }
160
-
161
- it 'updates the adjustment' do
162
- expect { subject }.to change { adjustment.amount }.from(5).to(10)
163
- end
164
- end
165
-
166
- context 'with a sourceless adjustment' do
167
- let(:source) { nil }
168
-
169
- it 'does nothing' do
170
- expect { subject }.to_not change { adjustment.amount }
171
- end
172
- end
173
- end
174
- end
175
-
176
- describe "promotion code presence error" do
177
- subject do
178
- adjustment.valid?
179
- adjustment.errors[:promotion_code]
180
- end
181
-
182
- context "when the adjustment is not a promotion adjustment" do
183
- let(:adjustment) { build(:adjustment) }
184
-
185
- it { is_expected.to be_blank }
186
- end
187
-
188
- context "when the adjustment is a promotion adjustment" do
189
- let(:adjustment) { build(:adjustment, source: promotion.actions.first) }
190
- let(:promotion) { create(:promotion, :with_order_adjustment) }
191
-
192
- context "when the promotion does not have a code" do
193
- it { is_expected.to be_blank }
194
- end
195
-
196
- context "when the promotion has a code" do
197
- let!(:promotion_code) { create(:promotion_code, promotion: promotion) }
198
-
199
- it { is_expected.to include("can't be blank") }
200
- end
201
- end
202
- end
203
-
204
- describe 'repairing adjustment associations' do
205
- context 'on create' do
206
- let(:adjustable) { order }
207
- let(:adjustment_source) { promotion.actions[0] }
208
- let(:order) { create(:order) }
209
- let(:promotion) { create(:promotion, :with_line_item_adjustment) }
210
-
211
- def expect_deprecation_warning
212
- expect(Spree::Deprecation).to(
213
- receive(:warn).
214
- with(
215
- /Adjustment \d+ was not added to #{adjustable.class} #{adjustable.id}/,
216
- instance_of(Array),
217
- )
218
- )
219
- end
220
-
221
- context 'when adding adjustments via the wrong association' do
222
- def create_adjustment
223
- adjustment_source.adjustments.create!(
224
- amount: 10,
225
- adjustable: adjustable,
226
- order: order,
227
- label: 'some label',
228
- )
229
- end
230
-
231
- context 'when adjustable.adjustments is loaded' do
232
- before { adjustable.adjustments.to_a }
233
-
234
- it 'repairs adjustable.adjustments' do
235
- expect_deprecation_warning
236
- adjustment = create_adjustment
237
- expect(adjustable.adjustments).to include(adjustment)
238
- end
239
-
240
- context 'when the adjustment is destroyed before after_commit runs' do
241
- it 'does not repair' do
242
- expect(Spree::Deprecation).not_to receive(:warn)
243
- Spree::Adjustment.transaction do
244
- adjustment = create_adjustment
245
- adjustment.destroy!
246
- end
247
- end
248
- end
249
- end
250
-
251
- context 'when adjustable.adjustments is not loaded' do
252
- it 'does repair' do
253
- expect(Spree::Deprecation).not_to receive(:warn)
254
- create_adjustment
255
- end
256
- end
257
- end
258
-
259
- context 'when adding adjustments via the correct association' do
260
- def create_adjustment
261
- adjustable.adjustments.create!(
262
- amount: 10,
263
- source: adjustment_source,
264
- order: order,
265
- label: 'some label',
266
- )
267
- end
268
-
269
- context 'when adjustable.adjustments is loaded' do
270
- before { adjustable.adjustments.to_a }
271
-
272
- it 'does not repair' do
273
- expect(Spree::Deprecation).not_to receive(:warn)
274
- create_adjustment
275
- end
276
- end
277
-
278
- context 'when adjustable.adjustments is not loaded' do
279
- it 'does not repair' do
280
- expect(Spree::Deprecation).not_to receive(:warn)
281
- create_adjustment
282
- end
283
- end
284
- end
285
- end
286
-
287
- context 'on destroy' do
288
- let(:adjustment) { create(:adjustment) }
289
- let(:adjustable) { adjustment.adjustable }
290
-
291
- def expect_deprecation_warning(adjustable)
292
- expect(Spree::Deprecation).to(
293
- receive(:warn).
294
- with(
295
- /Adjustment #{adjustment.id} was not removed from #{adjustable.class} #{adjustable.id}/,
296
- instance_of(Array),
297
- )
298
- )
299
- end
300
-
301
- context 'when destroying adjustments not via association' do
302
- context 'when adjustable.adjustments is loaded' do
303
- before { adjustable.adjustments.to_a }
304
-
305
- it 'repairs adjustable.adjustments' do
306
- expect_deprecation_warning(adjustable)
307
- adjustment.destroy!
308
- expect(adjustable.adjustments).not_to include(adjustment)
309
- end
310
- end
311
-
312
- context 'when adjustable.adjustments is not loaded' do
313
- it 'does not repair' do
314
- expect(Spree::Deprecation).not_to receive(:warn)
315
- adjustment.destroy!
316
- end
317
- end
318
- end
319
-
320
- context 'when destroying adjustments via the association' do
321
- context 'when adjustable.adjustments is loaded' do
322
- before { adjustable.adjustments.to_a }
323
-
324
- it 'does not repair' do
325
- expect(Spree::Deprecation).not_to receive(:warn)
326
- adjustable.adjustments.destroy(adjustment)
327
- end
328
- end
329
-
330
- context 'when adjustable.adjustments is not loaded' do
331
- it 'does not repair' do
332
- expect(Spree::Deprecation).not_to receive(:warn)
333
- adjustable.adjustments.destroy(adjustment)
334
- end
335
- end
336
- end
337
- end
338
- end
339
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Asset, type: :model do
6
- describe "#viewable" do
7
- it "touches association" do
8
- product = build(:custom_product)
9
-
10
- expect do
11
- Spree::Asset.create! { |a| a.viewable = product.master }
12
- end.to change { product.updated_at }
13
- end
14
- end
15
-
16
- describe "#acts_as_list scope" do
17
- it "should start from first position for different viewables" do
18
- asset1 = Spree::Asset.create(viewable_type: 'Spree::Image', viewable_id: 1)
19
- asset2 = Spree::Asset.create(viewable_type: 'Spree::LineItem', viewable_id: 1)
20
-
21
- expect(asset1.position).to eq 1
22
- expect(asset2.position).to eq 1
23
- end
24
- end
25
- end
@@ -1,260 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- require 'shared_examples/calculator_shared_examples'
5
-
6
- RSpec.describe Spree::Calculator::DefaultTax, type: :model do
7
- let(:address) { create(:address) }
8
- let!(:zone) { create(:zone, name: "Country Zone", countries: [tax_rate_country]) }
9
- let(:tax_rate_country) { address.country }
10
- let(:tax_category) { create(:tax_category) }
11
- let(:starts_at) { nil }
12
- let(:expires_at) { nil }
13
- let!(:rate) do
14
- create(:tax_rate, tax_categories: [tax_category], amount: 0.05,
15
- included_in_price: included_in_price, zone: zone,
16
- starts_at: starts_at, expires_at: expires_at)
17
- end
18
- let(:included_in_price) { false }
19
- subject(:calculator) { Spree::Calculator::DefaultTax.new(calculable: rate ) }
20
-
21
- it_behaves_like 'a calculator with a description'
22
-
23
- context "#compute" do
24
- context "when given an order" do
25
- let(:order) do
26
- create(
27
- :order_with_line_items,
28
- line_items_attributes: [
29
- { price: 10, quantity: 3, tax_category: tax_category }.merge(line_item_one_options),
30
- { price: 10, quantity: 3, tax_category: tax_category }.merge(line_item_two_options)
31
- ],
32
- ship_address: address
33
- )
34
- end
35
- let(:line_item_one_options) { {} }
36
- let(:line_item_two_options) { {} }
37
-
38
- context "when all items matches the rate's tax category" do
39
- it "should be equal to the sum of the item totals * rate" do
40
- expect(calculator.compute(order)).to eq(3)
41
- end
42
-
43
- context "when rate is not in its validity period" do
44
- let(:starts_at) { 1.day.from_now }
45
- let(:expires_at) { 2.days.from_now }
46
-
47
- it "should be 0" do
48
- expect(calculator.compute(order)).to eq(0)
49
- end
50
- end
51
- end
52
-
53
- context "when no line items match the tax category" do
54
- let(:other_tax_category) { create(:tax_category) }
55
- let(:line_item_one_options) { { tax_category: other_tax_category } }
56
- let(:line_item_two_options) { { tax_category: other_tax_category } }
57
-
58
- it "should be 0" do
59
- expect(calculator.compute(order)).to eq(0)
60
- end
61
- end
62
-
63
- context "when one item matches the tax category" do
64
- let(:other_tax_category) { create(:tax_category) }
65
- let(:line_item_two_options) { { tax_category: other_tax_category } }
66
-
67
- it "should be equal to the item total * rate" do
68
- expect(calculator.compute(order)).to eq(1.5)
69
- end
70
-
71
- context "when rate is not in its validity period" do
72
- let(:starts_at) { 1.day.from_now }
73
- let(:expires_at) { 2.days.from_now }
74
-
75
- it "should be 0" do
76
- expect(calculator.compute(order)).to eq(0)
77
- end
78
- end
79
-
80
- context "correctly rounds to within two decimal places" do
81
- let(:line_item_one_options) { { price: 10.333, quantity: 1 } }
82
-
83
- specify do
84
- # Amount is 0.51665, which will be rounded to...
85
- expect(calculator.compute(order)).to eq(0.52)
86
- end
87
- end
88
- end
89
-
90
- context "when tax is included in price" do
91
- let(:included_in_price) { true }
92
-
93
- it "will return the deducted amount from the totals" do
94
- # total price including 5% tax = $60
95
- # ex pre-tax = $57.14
96
- # 57.14 + %5 = 59.997 (or "close enough" to $60)
97
- # 60 - 57.14 = $2.86
98
- expect(calculator.compute(order).to_f).to eql 2.86
99
- end
100
-
101
- context "when rate is not in its validity period" do
102
- let(:starts_at) { 1.day.from_now }
103
- let(:expires_at) { 2.days.from_now }
104
-
105
- it "should be 0" do
106
- expect(calculator.compute(order)).to eq(0)
107
- end
108
- end
109
- end
110
- end
111
- end
112
-
113
- shared_examples_for 'computing any item' do
114
- let(:adjustment_total) { 0 }
115
- let(:adjustments) do
116
- if adjustment_total.zero?
117
- []
118
- else
119
- [Spree::Adjustment.new(included: false, source: nil, amount: adjustment_total)]
120
- end
121
- end
122
- let(:order) { build_stubbed(:order, ship_address: address) }
123
-
124
- context "when tax is included in price" do
125
- let(:included_in_price) { true }
126
-
127
- context "when the variant matches the tax category" do
128
- it "should be equal to the item's full price * rate" do
129
- expect(calculator.compute(item)).to eql 1.43
130
- end
131
-
132
- context "when rate is not in its validity period" do
133
- let(:starts_at) { 1.day.from_now }
134
- let(:expires_at) { 2.days.from_now }
135
-
136
- it "should be 0" do
137
- expect(calculator.compute(item)).to eq(0)
138
- end
139
- end
140
-
141
- context "when line item is adjusted" do
142
- let(:adjustment_total) { -1 }
143
-
144
- it "should be equal to the item's adjusted total * rate" do
145
- expect(calculator.compute(item)).to eql 1.38
146
- end
147
- end
148
- end
149
- end
150
-
151
- context "when tax is not included in price" do
152
- context "when the item has an adjustment" do
153
- let(:adjustment_total) { -1 }
154
-
155
- it "should be equal to the item's pre-tax total * rate" do
156
- expect(calculator.compute(item)).to eq(1.45)
157
- end
158
-
159
- context "when rate is not in its validity period" do
160
- let(:starts_at) { 1.day.from_now }
161
- let(:expires_at) { 2.days.from_now }
162
-
163
- it "should be 0" do
164
- expect(calculator.compute(item)).to eq(0)
165
- end
166
- end
167
- end
168
-
169
- context "when the variant matches the tax category" do
170
- it "should be equal to the item pre-tax total * rate" do
171
- expect(calculator.compute(item)).to eq(1.50)
172
- end
173
-
174
- context "when rate is not in its validity period" do
175
- let(:starts_at) { 1.day.from_now }
176
- let(:expires_at) { 2.days.from_now }
177
-
178
- it "should be 0" do
179
- expect(calculator.compute(item)).to eq(0)
180
- end
181
- end
182
- end
183
- end
184
- end
185
-
186
- describe 'when given a line item' do
187
- let(:item) do
188
- build_stubbed(
189
- :line_item,
190
- price: 10,
191
- quantity: 3,
192
- adjustments: adjustments,
193
- order: order,
194
- tax_category: tax_category
195
- )
196
- end
197
-
198
- it_behaves_like 'computing any item'
199
- end
200
-
201
- describe 'when given a shipment' do
202
- let(:shipping_method) do
203
- build_stubbed(
204
- :shipping_method,
205
- tax_category: tax_category
206
- )
207
- end
208
-
209
- let(:shipping_rate) do
210
- build_stubbed(
211
- :shipping_rate,
212
- selected: true,
213
- shipping_method: shipping_method
214
- )
215
- end
216
-
217
- let(:item) do
218
- build_stubbed(
219
- :shipment,
220
- cost: 30,
221
- adjustments: adjustments,
222
- order: order,
223
- shipping_rates: [shipping_rate]
224
- )
225
- end
226
-
227
- it_behaves_like 'computing any item'
228
- end
229
-
230
- describe 'when given a shipping rate' do
231
- let(:shipping_method) do
232
- build_stubbed(
233
- :shipping_method,
234
- tax_category: tax_category
235
- )
236
- end
237
-
238
- let(:shipment) do
239
- build_stubbed(
240
- :shipment,
241
- order: order
242
- )
243
- end
244
-
245
- let(:item) do
246
- # cost and adjusted amount for shipping rates are the same as they
247
- # can not be adjusted. for the sake of passing tests, the cost is
248
- # adjusted here.
249
- build_stubbed(
250
- :shipping_rate,
251
- cost: 30 + adjustment_total,
252
- selected: true,
253
- shipping_method: shipping_method,
254
- shipment: shipment
255
- )
256
- end
257
-
258
- it_behaves_like 'computing any item'
259
- end
260
- end
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
- require 'shared_examples/calculator_shared_examples'
5
-
6
- RSpec.describe Spree::Calculator::DistributedAmount, type: :model do
7
- context 'applied to an order' do
8
- let(:calculator) { Spree::Calculator::DistributedAmount.new }
9
- let(:promotion) {
10
- create :promotion,
11
- name: '15 spread'
12
- }
13
- let(:order) {
14
- create :completed_order_with_promotion,
15
- promotion: promotion,
16
- line_items_attributes: [{ price: 20 }, { price: 30 }, { price: 100 }]
17
- }
18
-
19
- before do
20
- calculator.preferred_amount = 15
21
- Spree::Promotion::Actions::CreateItemAdjustments.create!(calculator: calculator, promotion: promotion)
22
- order.recalculate
23
- end
24
-
25
- it 'correctly distributes the entire discount' do
26
- expect(order.promo_total).to eq(-15)
27
- expect(order.line_items.map(&:adjustment_total)).to eq([-2, -3, -10])
28
- end
29
-
30
- context 'with product promotion rule' do
31
- let(:first_product) { order.line_items.first.product }
32
-
33
- before do
34
- rule = Spree::Promotion::Rules::Product.create!(
35
- promotion: promotion,
36
- product_promotion_rules: [
37
- Spree::ProductPromotionRule.new(product: first_product),
38
- ],
39
- )
40
- promotion.rules << rule
41
- promotion.save!
42
- order.recalculate
43
- end
44
-
45
- it 'still distributes the entire discount' do
46
- expect(order.promo_total).to eq(-15)
47
- expect(order.line_items.map(&:adjustment_total)).to eq([-15, 0, 0])
48
- end
49
- end
50
- end
51
-
52
- describe "#compute_line_item" do
53
- subject { calculator.compute_line_item(order.line_items.first) }
54
-
55
- let(:calculator) { Spree::Calculator::DistributedAmount.new }
56
- let(:promotion) { create(:promotion) }
57
-
58
- let(:order) do
59
- FactoryBot.create(
60
- :order_with_line_items,
61
- line_items_attributes: [{ price: 50 }, { price: 50 }, { price: 50 }]
62
- )
63
- end
64
-
65
- before do
66
- calculator.preferred_amount = 15
67
- calculator.preferred_currency = currency
68
- Spree::Promotion::Actions::CreateItemAdjustments.create!(calculator: calculator, promotion: promotion)
69
- end
70
-
71
- context "when the order currency matches the store's currency" do
72
- let(:currency) { "USD" }
73
- it { is_expected.to eq 5 }
74
- it { is_expected.to be_a BigDecimal }
75
- end
76
-
77
- context "when the order currency does not match the store's currency" do
78
- let(:currency) { "CAD" }
79
- it { is_expected.to eq 0 }
80
- end
81
- end
82
- end