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,309 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::InventoryUnit, type: :model do
6
- let(:stock_location) { create(:stock_location_with_items) }
7
- let(:stock_item) { stock_location.stock_items.order(:id).first }
8
- let(:line_item) { create(:line_item, variant: stock_item.variant) }
9
-
10
- describe ".cancelable" do
11
- let!(:pending_unit) { create(:inventory_unit, pending: true) }
12
- let!(:non_pending_unit) { create(:inventory_unit, pending: false) }
13
-
14
- subject { described_class.cancelable }
15
-
16
- it { is_expected.to contain_exactly(non_pending_unit) }
17
- end
18
-
19
- context "#backordered_for_stock_item" do
20
- let(:order) do
21
- order = create(:order, state: 'complete', ship_address: create(:ship_address))
22
- order.completed_at = Time.current
23
- create(:shipment, order: order, stock_location: stock_location)
24
- order.shipments.reload
25
- create(:line_item, order: order, variant: stock_item.variant)
26
- order.line_items.reload
27
- order.tap(&:save!)
28
- end
29
-
30
- let(:shipment) do
31
- order.shipments.first
32
- end
33
-
34
- let(:shipping_method) do
35
- shipment.shipping_methods.first
36
- end
37
-
38
- let!(:unit) do
39
- unit = shipment.inventory_units.first
40
- unit.state = 'backordered'
41
- unit.variant_id = stock_item.variant.id
42
- unit.line_item = line_item
43
- unit.tap(&:save!)
44
- end
45
-
46
- before do
47
- stock_item.set_count_on_hand(-2)
48
- end
49
-
50
- # Regression for https://github.com/spree/spree/issues/3066
51
- it "returns modifiable objects" do
52
- units = Spree::InventoryUnit.backordered_for_stock_item(stock_item)
53
- units.first.save!
54
- end
55
-
56
- it "finds inventory units from its stock location when the unit's variant matches the stock item's variant" do
57
- expect(Spree::InventoryUnit.backordered_for_stock_item(stock_item)).to match_array([unit])
58
- end
59
-
60
- it "does not find inventory units that aren't backordered" do
61
- on_hand_unit = shipment.inventory_units.build
62
- on_hand_unit.state = 'on_hand'
63
- on_hand_unit.line_item = line_item
64
- on_hand_unit.variant = stock_item.variant
65
- on_hand_unit.save!
66
-
67
- expect(Spree::InventoryUnit.backordered_for_stock_item(stock_item)).not_to include(on_hand_unit)
68
- end
69
-
70
- it "does not find inventory units that don't match the stock item's variant" do
71
- other_variant_unit = shipment.inventory_units.build
72
- other_variant_unit.state = 'backordered'
73
- other_variant_unit.line_item = line_item
74
- other_variant_unit.variant = create(:variant)
75
- other_variant_unit.save!
76
-
77
- expect(Spree::InventoryUnit.backordered_for_stock_item(stock_item)).not_to include(other_variant_unit)
78
- end
79
-
80
- it "does not change shipping cost when fulfilling the order" do
81
- current_shipment_cost = shipment.cost
82
- shipping_method.calculator.set_preference(:amount, current_shipment_cost + 5.0)
83
- stock_item.set_count_on_hand(0)
84
- expect(shipment.reload.cost).to eq(current_shipment_cost)
85
- end
86
-
87
- context "other shipments" do
88
- let(:other_order) do
89
- order = create(:order)
90
- order.state = 'payment'
91
- order.completed_at = nil
92
- order.tap(&:save!)
93
- end
94
-
95
- let(:other_shipment) do
96
- shipment = Spree::Shipment.new
97
- shipment.stock_location = stock_location
98
- shipment.shipping_methods << create(:shipping_method)
99
- shipment.order = other_order
100
- shipment.tap(&:save!)
101
- end
102
-
103
- let!(:other_unit) do
104
- unit = other_shipment.inventory_units.build
105
- unit.state = 'backordered'
106
- unit.variant_id = stock_item.variant.id
107
- unit.line_item = line_item
108
- unit.tap(&:save!)
109
- end
110
-
111
- it "does not find inventory units belonging to incomplete orders" do
112
- expect(Spree::InventoryUnit.backordered_for_stock_item(stock_item)).not_to include(other_unit)
113
- end
114
- end
115
- end
116
-
117
- context "variants discarded" do
118
- let!(:unit) { create(:inventory_unit) }
119
-
120
- it "can still fetch variant" do
121
- unit.variant.discard
122
- expect(unit.reload.variant).to be_a Spree::Variant
123
- end
124
-
125
- it "can still fetch variants by eager loading (remove default_scope)" do
126
- skip "find a way to remove default scope when eager loading associations"
127
- unit.variant.discard
128
- expect(Spree::InventoryUnit.joins(:variant).includes(:variant).first.variant).to be_a Spree::Variant
129
- end
130
- end
131
-
132
- context "#finalize_units!" do
133
- let!(:stock_location) { create(:stock_location) }
134
- let(:variant) { create(:variant) }
135
- let(:inventory_units) {
136
- [
137
- create(:inventory_unit, variant: variant),
138
- create(:inventory_unit, variant: variant)
139
- ]
140
- }
141
-
142
- it "should create a stock movement" do
143
- expect(Spree::Deprecation).to receive(:warn)
144
- Spree::InventoryUnit.finalize_units!(inventory_units)
145
- expect(inventory_units.any?(&:pending)).to be false
146
- end
147
- end
148
-
149
- describe "#current_or_new_return_item" do
150
- subject { inventory_unit.current_or_new_return_item }
151
-
152
- context "associated with a return item" do
153
- let(:return_item) { create(:return_item) }
154
- let(:inventory_unit) { return_item.inventory_unit }
155
-
156
- it "returns a persisted return item" do
157
- expect(subject).to be_persisted
158
- end
159
-
160
- it "returns it's associated return_item" do
161
- expect(subject).to eq return_item
162
- end
163
- end
164
-
165
- context "no associated return item" do
166
- let(:inventory_unit) { create(:inventory_unit) }
167
-
168
- it "returns a new return item" do
169
- expect(subject).to_not be_persisted
170
- end
171
-
172
- it "associates itself to the new return_item" do
173
- expect(subject.inventory_unit).to eq inventory_unit
174
- end
175
- end
176
- end
177
-
178
- describe '#additional_tax_total' do
179
- let(:quantity) { 2 }
180
- let(:line_item_additional_tax_total) { 10.00 }
181
- let(:line_item) do
182
- build(:line_item, {
183
- quantity: quantity,
184
- additional_tax_total: line_item_additional_tax_total
185
- })
186
- end
187
-
188
- subject do
189
- build(:inventory_unit, line_item: line_item)
190
- end
191
-
192
- it 'is the correct amount' do
193
- expect(subject.additional_tax_total).to eq line_item_additional_tax_total / quantity
194
- end
195
- end
196
-
197
- describe '#included_tax_total' do
198
- let(:quantity) { 2 }
199
- let(:line_item_included_tax_total) { 10.00 }
200
- let(:line_item) do
201
- build(:line_item, {
202
- quantity: quantity,
203
- included_tax_total: line_item_included_tax_total
204
- })
205
- end
206
-
207
- subject do
208
- build(:inventory_unit, line_item: line_item)
209
- end
210
-
211
- it 'is the correct amount' do
212
- expect(subject.included_tax_total).to eq line_item_included_tax_total / quantity
213
- end
214
- end
215
-
216
- describe '#additional_tax_total' do
217
- let(:quantity) { 2 }
218
- let(:line_item_additional_tax_total) { 10.00 }
219
- let(:line_item) do
220
- build(:line_item, {
221
- quantity: quantity,
222
- additional_tax_total: line_item_additional_tax_total
223
- })
224
- end
225
-
226
- subject do
227
- build(:inventory_unit, line_item: line_item)
228
- end
229
-
230
- it 'is the correct amount' do
231
- expect(subject.additional_tax_total).to eq line_item_additional_tax_total / quantity
232
- end
233
- end
234
-
235
- describe '#included_tax_total' do
236
- let(:quantity) { 2 }
237
- let(:line_item_included_tax_total) { 10.00 }
238
- let(:line_item) do
239
- build(:line_item, {
240
- quantity: quantity,
241
- included_tax_total: line_item_included_tax_total
242
- })
243
- end
244
-
245
- subject do
246
- build(:inventory_unit, line_item: line_item)
247
- end
248
-
249
- it 'is the correct amount' do
250
- expect(subject.included_tax_total).to eq line_item_included_tax_total / quantity
251
- end
252
- end
253
-
254
- describe "#exchange_requested?" do
255
- subject { inventory_unit.exchange_requested? }
256
-
257
- context "return item contains inventory unit and was for an exchange" do
258
- let(:exchange_return_item) { create(:exchange_return_item) }
259
- let(:inventory_unit) { exchange_return_item.inventory_unit }
260
- it { is_expected.to eq true }
261
- end
262
-
263
- context "return item does not contain inventory unit" do
264
- let(:inventory_unit) { create(:inventory_unit) }
265
- it { is_expected.to eq false }
266
- end
267
- end
268
-
269
- context "destroy prevention" do
270
- it "can be destroyed when on hand" do
271
- inventory_unit = create(:inventory_unit, state: "on_hand")
272
- expect(inventory_unit.destroy).to be_truthy
273
- expect { inventory_unit.reload }.to raise_error(ActiveRecord::RecordNotFound)
274
- end
275
-
276
- it "can be destroyed when backordered" do
277
- inventory_unit = create(:inventory_unit, state: "backordered")
278
- expect(inventory_unit.destroy).to be_truthy
279
- expect { inventory_unit.reload }.to raise_error(ActiveRecord::RecordNotFound)
280
- end
281
-
282
- it "cannot be destroyed when shipped" do
283
- inventory_unit = create(:inventory_unit, state: "shipped")
284
- expect(inventory_unit.destroy).to eq false
285
- expect(inventory_unit.errors.full_messages.join).to match /Cannot destroy/
286
- expect { inventory_unit.reload }.not_to raise_error
287
- end
288
-
289
- it "cannot be destroyed when returned" do
290
- inventory_unit = create(:inventory_unit, state: "returned")
291
- expect(inventory_unit.destroy).to eq false
292
- expect(inventory_unit.errors.full_messages.join).to match /Cannot destroy/
293
- expect { inventory_unit.reload }.not_to raise_error
294
- end
295
-
296
- it "can be destroyed if its shipment is ready" do
297
- inventory_unit = create(:order_ready_to_ship).inventory_units.first
298
- expect(inventory_unit.destroy).to be_truthy
299
- expect { inventory_unit.reload }.to raise_error(ActiveRecord::RecordNotFound)
300
- end
301
-
302
- it "cannot be destroyed if its shipment is shipped" do
303
- inventory_unit = create(:shipped_order).inventory_units.first
304
- expect(inventory_unit.destroy).to eq false
305
- expect(inventory_unit.errors.full_messages.join).to match /Cannot destroy/
306
- expect { inventory_unit.reload }.not_to raise_error
307
- end
308
- end
309
- end
@@ -1,240 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::LineItem, type: :model do
6
- let(:order) { create :order_with_line_items, line_items_count: 1 }
7
- let(:line_item) { order.line_items.first }
8
-
9
- context '#destroy' do
10
- it "fetches soft-deleted products" do
11
- line_item.product.discard
12
- expect(line_item.reload.product).to be_a Spree::Product
13
- end
14
-
15
- it "fetches soft-deleted variants" do
16
- line_item.variant.discard
17
- expect(line_item.reload.variant).to be_a Spree::Variant
18
- end
19
-
20
- it "returns inventory when a line item is destroyed" do
21
- expect_any_instance_of(Spree::OrderInventory).to receive(:verify)
22
- line_item.destroy
23
- end
24
-
25
- it "deletes inventory units" do
26
- expect { line_item.destroy }.to change { line_item.inventory_units.count }.from(1).to(0)
27
- end
28
- end
29
-
30
- context "#save" do
31
- context "target_shipment is provided" do
32
- it "verifies inventory" do
33
- line_item.target_shipment = Spree::Shipment.new
34
- expect_any_instance_of(Spree::OrderInventory).to receive(:verify)
35
- line_item.save
36
- end
37
- end
38
- end
39
-
40
- describe 'line item creation' do
41
- let(:variant) { create :variant }
42
-
43
- subject(:line_item) { Spree::LineItem.new(variant: variant, order: order) }
44
-
45
- # Tests for https://github.com/spree/spree/issues/3391
46
- context 'before validation' do
47
- before { line_item.valid? }
48
-
49
- it 'copies the variants price' do
50
- expect(line_item.price).to eq(variant.price)
51
- end
52
-
53
- it 'copies the variants cost_price' do
54
- expect(line_item.cost_price).to eq(variant.cost_price)
55
- end
56
-
57
- it "copies the order's currency" do
58
- expect(line_item.currency).to eq(order.currency)
59
- end
60
-
61
- # Test for https://github.com/spree/spree/issues/3481
62
- it 'copies the variants tax category' do
63
- expect(line_item.tax_category).to eq(line_item.variant.tax_category)
64
- end
65
- end
66
-
67
- # Specs for https://github.com/solidusio/solidus/pull/522#issuecomment-170668125
68
- context "with `#copy_price` defined" do
69
- before(:context) do
70
- Spree::LineItem.class_eval do
71
- def copy_price
72
- self.cost_price = 10
73
- self.price = 20
74
- end
75
- end
76
- end
77
-
78
- after(:context) do
79
- Spree::LineItem.class_eval do
80
- remove_method :copy_price
81
- end
82
- end
83
-
84
- it 'should display a deprecation warning' do
85
- expect(Spree::Deprecation).to receive(:warn)
86
- Spree::LineItem.new(variant: variant, order: order)
87
- end
88
-
89
- it 'should run the user-defined copy_price method' do
90
- expect_any_instance_of(Spree::LineItem).to receive(:copy_price).and_call_original
91
- Spree::Deprecation.silence do
92
- Spree::LineItem.new(variant: variant, order: order)
93
- end
94
- end
95
- end
96
- end
97
-
98
- # TODO: Remove this spec after the method has been removed.
99
- describe '#discounted_amount' do
100
- it "returns the amount minus any discounts" do
101
- line_item.price = 10
102
- line_item.quantity = 2
103
- line_item.promo_total = -5
104
- expect(Spree::Deprecation.silence { line_item.discounted_amount }).to eq(15)
105
- end
106
- end
107
-
108
- # TODO: Remove this spec after the method has been removed.
109
- describe "#discounted_money" do
110
- it "should return a money object with the discounted amount" do
111
- expect(Spree::Deprecation.silence { line_item.discounted_amount }).to eq(10.00)
112
- expect(Spree::Deprecation.silence { line_item.discounted_money.to_s }).to eq "$10.00"
113
- end
114
- end
115
-
116
- describe '#total_before_tax' do
117
- before do
118
- line_item.update!(price: 10, quantity: 2)
119
- end
120
- let!(:admin_adjustment) { create(:adjustment, adjustable: line_item, order: line_item.order, amount: -1, source: nil) }
121
- let!(:promo_adjustment) { create(:adjustment, adjustable: line_item, order: line_item.order, amount: -2, source: promo_action) }
122
- let!(:ineligible_promo_adjustment) { create(:adjustment, eligible: false, adjustable: line_item, order: line_item.order, amount: -4, source: promo_action) }
123
- let(:promo_action) { promo.actions[0] }
124
- let(:promo) { create(:promotion, :with_line_item_adjustment) }
125
-
126
- it 'returns the amount minus any adjustments' do
127
- expect(line_item.total_before_tax).to eq(20 - 1 - 2)
128
- end
129
- end
130
-
131
- describe ".money" do
132
- before do
133
- line_item.price = 3.50
134
- line_item.quantity = 2
135
- end
136
-
137
- it "returns a Spree::Money representing the total for this line item" do
138
- expect(line_item.money.to_s).to eq("$7.00")
139
- end
140
- end
141
-
142
- describe '.single_money' do
143
- before { line_item.price = 3.50 }
144
- it "returns a Spree::Money representing the price for one variant" do
145
- expect(line_item.single_money.to_s).to eq("$3.50")
146
- end
147
- end
148
-
149
- context 'setting a line item price' do
150
- let(:store) { create(:store, default: true) }
151
- let(:order) { Spree::Order.new(currency: "RUB", store: store) }
152
- let(:variant) { Spree::Variant.new(product: Spree::Product.new) }
153
- let(:line_item) { Spree::LineItem.new(order: order, variant: variant) }
154
-
155
- before { expect(variant).to receive(:price_for).at_least(:once).and_return(price) }
156
-
157
- context "when a price exists in order currency" do
158
- let(:price) { Spree::Money.new(99.00, currency: "RUB") }
159
-
160
- it "is a valid line item" do
161
- expect(line_item.valid?).to be_truthy
162
- expect(line_item.errors[:price].size).to eq(0)
163
- end
164
- end
165
-
166
- context "when a price does not exist in order currency" do
167
- let(:price) { nil }
168
-
169
- it "is not a valid line item" do
170
- expect(line_item.valid?).to be_falsey
171
- expect(line_item.errors[:price].size).to eq(1)
172
- end
173
- end
174
- end
175
-
176
- describe "#options=" do
177
- let(:options) { { price: 123, quantity: 5 } }
178
-
179
- it "updates the data provided in the options" do
180
- line_item.options = options
181
-
182
- expect(line_item.price).to eq 123
183
- expect(line_item.quantity).to eq 5
184
- end
185
-
186
- context "when price is not provided" do
187
- let(:options) { { quantity: 5 } }
188
-
189
- it "sets price anyway, retrieving it from line item options" do
190
- expect(line_item.variant)
191
- .to receive(:price_for)
192
- .and_return(Spree::Money.new(123, currency: "USD"))
193
-
194
- line_item.options = options
195
-
196
- expect(line_item.price).to eq 123
197
- expect(line_item.quantity).to eq 5
198
- end
199
- end
200
- end
201
-
202
- describe 'money_price=' do
203
- let(:currency) { "USD" }
204
- let(:new_price) { Spree::Money.new(99.00, currency: currency) }
205
-
206
- it 'assigns a new price' do
207
- line_item.money_price = new_price
208
- expect(line_item.price).to eq(new_price.cents / 100.0)
209
- end
210
-
211
- context 'when the new price is nil' do
212
- let(:new_price) { nil }
213
-
214
- it 'makes the line item price empty' do
215
- line_item.money_price = new_price
216
- expect(line_item.price).to be_nil
217
- end
218
- end
219
-
220
- context 'when the price has a currency different from the order currency' do
221
- let(:currency) { "RUB" }
222
-
223
- it 'raises an exception' do
224
- expect {
225
- line_item.money_price = new_price
226
- }.to raise_exception Spree::LineItem::CurrencyMismatch
227
- end
228
- end
229
- end
230
-
231
- describe "#pricing_options" do
232
- subject { line_item.pricing_options }
233
-
234
- it { is_expected.to be_a(Spree::Config.pricing_options_class) }
235
-
236
- it "holds the order currency" do
237
- expect(subject.currency).to eq("USD")
238
- end
239
- end
240
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::OptionType, type: :model do
6
- context "touching" do
7
- it "should touch a product" do
8
- product_option_type = create(:product_option_type)
9
- option_type = product_option_type.option_type
10
- product = product_option_type.product
11
- product.update_column(:updated_at, 1.day.ago)
12
- option_type.touch
13
- expect(product.reload.updated_at).to be_within(3.seconds).of(Time.current)
14
- end
15
- end
16
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::OptionValue, type: :model do
6
- include ActiveSupport::Testing::TimeHelpers
7
-
8
- context "touching" do
9
- let!(:variant) do
10
- travel_to(1.day.ago) do
11
- create(:variant)
12
- end
13
- end
14
- let(:option_value) { variant.option_values.first }
15
-
16
- it "should touch a variant" do
17
- now = Time.current
18
- travel_to(now) do
19
- option_value.touch
20
- expect(variant.reload.updated_at).to be_within(1.second).of(now)
21
- end
22
- end
23
-
24
- context "from the after_save hook" do
25
- it "should not touch the variant if there are no changes" do
26
- now = Time.current
27
- travel_to(now) do
28
- option_value.save!
29
- expect(variant.reload.updated_at).to be <= 1.day.ago
30
- end
31
- end
32
-
33
- it "should touch the variant if there are changes" do
34
- now = Time.current
35
- travel_to(now) do
36
- option_value.name += "--1"
37
- option_value.save!
38
- expect(variant.reload.updated_at).to be_within(1.second).of(now)
39
- end
40
- end
41
- end
42
- end
43
-
44
- describe "#presentation_with_option_type" do
45
- let(:option_value) { build(:option_value) }
46
- subject { option_value.presentation_with_option_type }
47
-
48
- it "returns a string in the correct form" do
49
- expect(subject).to eq "Size - S"
50
- end
51
- end
52
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Order, type: :model do
6
- let(:order) { Spree::Order.new }
7
-
8
- context 'validation' do
9
- context "when @use_billing is populated" do
10
- before do
11
- order.bill_address = stub_model(Spree::Address)
12
- order.ship_address = nil
13
- end
14
-
15
- context "with true" do
16
- before { order.use_billing = true }
17
-
18
- it "clones the bill address to the ship address" do
19
- order.valid?
20
- expect(order.ship_address).to eq(order.bill_address)
21
- end
22
- end
23
-
24
- context "with 'true'" do
25
- before { order.use_billing = 'true' }
26
-
27
- it "clones the bill address to the shipping" do
28
- order.valid?
29
- expect(order.ship_address).to eq(order.bill_address)
30
- end
31
- end
32
-
33
- context "with '1'" do
34
- before { order.use_billing = '1' }
35
-
36
- it "clones the bill address to the shipping" do
37
- order.valid?
38
- expect(order.ship_address).to eq(order.bill_address)
39
- end
40
- end
41
-
42
- context "with something other than a 'truthful' value" do
43
- before { order.use_billing = '0' }
44
-
45
- it "does not clone the bill address to the shipping" do
46
- order.valid?
47
- expect(order.ship_address).to be_nil
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rails_helper'
4
-
5
- RSpec.describe Spree::Order do
6
- context "when an order has an adjustment that zeroes the total, but another adjustment for shipping that raises it above zero" do
7
- let!(:persisted_order) { create(:order) }
8
- let!(:line_item) { create(:line_item) }
9
- let!(:shipping_method) do
10
- sm = create(:shipping_method)
11
- sm.calculator.preferred_amount = 10
12
- sm.save
13
- sm
14
- end
15
-
16
- before do
17
- persisted_order.line_items << line_item
18
- create(:adjustment, amount: -line_item.amount, label: "Promotion", adjustable: line_item, order: persisted_order)
19
- persisted_order.state = 'delivery'
20
- persisted_order.save # To ensure new state_change event
21
- end
22
-
23
- it "transitions from delivery to payment" do
24
- allow(persisted_order).to receive_messages(payment_required?: true)
25
- persisted_order.next!
26
- expect(persisted_order.state).to eq("payment")
27
- end
28
- end
29
- end