solidus_core 4.6.2 → 4.7.0

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 (328) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +13 -13
  3. data/app/controllers/spree/base_controller.rb +2 -2
  4. data/app/helpers/spree/base_helper.rb +24 -24
  5. data/app/helpers/spree/checkout_helper.rb +7 -7
  6. data/app/helpers/spree/core/controller_helpers/auth.rb +1 -1
  7. data/app/helpers/spree/core/controller_helpers/common.rb +3 -2
  8. data/app/helpers/spree/core/controller_helpers/order.rb +3 -5
  9. data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +1 -2
  10. data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +10 -10
  11. data/app/helpers/spree/products_helper.rb +5 -5
  12. data/app/helpers/spree/store_helper.rb +1 -1
  13. data/app/mailers/spree/carton_mailer.rb +3 -3
  14. data/app/mailers/spree/order_mailer.rb +4 -4
  15. data/app/mailers/spree/reimbursement_mailer.rb +2 -2
  16. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +5 -5
  17. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +5 -5
  18. data/app/models/concerns/spree/active_storage_adapter.rb +2 -2
  19. data/app/models/concerns/spree/adjustment_source.rb +4 -4
  20. data/app/models/concerns/spree/display_money.rb +2 -2
  21. data/app/models/concerns/spree/named_type.rb +1 -1
  22. data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
  23. data/app/models/concerns/spree/preferences/persistable.rb +1 -1
  24. data/app/models/concerns/spree/ransackable_attributes.rb +1 -0
  25. data/app/models/concerns/spree/soft_deletable.rb +2 -1
  26. data/app/models/concerns/spree/state_change_tracking.rb +1 -1
  27. data/app/models/concerns/spree/user_address_book.rb +12 -12
  28. data/app/models/concerns/spree/user_methods.rb +9 -9
  29. data/app/models/concerns/spree/user_reporting.rb +1 -0
  30. data/app/models/spree/ability.rb +1 -1
  31. data/app/models/spree/address/name.rb +1 -1
  32. data/app/models/spree/address.rb +7 -7
  33. data/app/models/spree/adjustment.rb +11 -10
  34. data/app/models/spree/adjustment_reason.rb +2 -2
  35. data/app/models/spree/billing_integration.rb +2 -2
  36. data/app/models/spree/calculator/default_tax.rb +2 -2
  37. data/app/models/spree/calculator/flat_fee.rb +1 -1
  38. data/app/models/spree/calculator/flat_rate.rb +2 -2
  39. data/app/models/spree/calculator/returns/default_refund_amount.rb +3 -3
  40. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +2 -2
  41. data/app/models/spree/calculator/shipping/flat_rate.rb +3 -3
  42. data/app/models/spree/calculator/shipping/flexi_rate.rb +8 -8
  43. data/app/models/spree/calculator/shipping/per_item.rb +3 -3
  44. data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
  45. data/app/models/spree/calculator.rb +31 -6
  46. data/app/models/spree/carton.rb +4 -4
  47. data/app/models/spree/classification.rb +2 -2
  48. data/app/models/spree/core/state_machines/order/class_methods.rb +3 -3
  49. data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +1 -1
  50. data/app/models/spree/country.rb +1 -1
  51. data/app/models/spree/credit_card.rb +27 -27
  52. data/app/models/spree/customer_return.rb +5 -4
  53. data/app/models/spree/distributed_amounts_handler.rb +1 -1
  54. data/app/models/spree/fulfilment_changer.rb +22 -22
  55. data/app/models/spree/image/active_storage_attachment.rb +2 -2
  56. data/app/models/spree/image/paperclip_attachment.rb +8 -8
  57. data/app/models/spree/in_memory_order_updater.rb +262 -0
  58. data/app/models/spree/inventory_unit.rb +11 -11
  59. data/app/models/spree/item_total.rb +1 -1
  60. data/app/models/spree/legacy_user.rb +2 -2
  61. data/app/models/spree/line_item.rb +21 -11
  62. data/app/models/spree/log_entry.rb +3 -3
  63. data/app/models/spree/mergeable_orders_finder.rb +44 -0
  64. data/app/models/spree/money.rb +2 -1
  65. data/app/models/spree/null_promotion_adjuster.rb +1 -1
  66. data/app/models/spree/option_type.rb +1 -1
  67. data/app/models/spree/option_value.rb +2 -2
  68. data/app/models/spree/order/number_generator.rb +1 -1
  69. data/app/models/spree/order.rb +66 -64
  70. data/app/models/spree/order_cancellations.rb +1 -3
  71. data/app/models/spree/order_inventory.rb +5 -8
  72. data/app/models/spree/order_mutex.rb +1 -1
  73. data/app/models/spree/order_shipping.rb +1 -1
  74. data/app/models/spree/order_updater.rb +59 -37
  75. data/app/models/spree/payment/cancellation.rb +2 -2
  76. data/app/models/spree/payment/processing.rb +22 -22
  77. data/app/models/spree/payment.rb +25 -25
  78. data/app/models/spree/payment_capture_event.rb +2 -2
  79. data/app/models/spree/payment_create.rb +1 -1
  80. data/app/models/spree/payment_method/bogus_credit_card.rb +18 -18
  81. data/app/models/spree/payment_method/check.rb +3 -3
  82. data/app/models/spree/payment_method/credit_card.rb +1 -1
  83. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +3 -3
  84. data/app/models/spree/payment_method/store_credit.rb +13 -13
  85. data/app/models/spree/payment_method.rb +12 -11
  86. data/app/models/spree/payment_source.rb +2 -2
  87. data/app/models/spree/permission_sets/dashboard_display.rb +3 -3
  88. data/app/models/spree/permission_sets/default_customer.rb +1 -1
  89. data/app/models/spree/preference.rb +1 -1
  90. data/app/models/spree/price.rb +7 -6
  91. data/app/models/spree/product/scopes.rb +23 -23
  92. data/app/models/spree/product.rb +37 -41
  93. data/app/models/spree/product_option_type.rb +2 -2
  94. data/app/models/spree/product_property.rb +3 -3
  95. data/app/models/spree/refund.rb +10 -10
  96. data/app/models/spree/refund_reason.rb +2 -2
  97. data/app/models/spree/reimbursement/credit.rb +1 -1
  98. data/app/models/spree/reimbursement.rb +8 -8
  99. data/app/models/spree/reimbursement_tax_calculator.rb +1 -1
  100. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -1
  101. data/app/models/spree/reimbursement_type.rb +2 -2
  102. data/app/models/spree/return_authorization.rb +7 -6
  103. data/app/models/spree/return_item/eligibility_validator/base_validator.rb +2 -2
  104. data/app/models/spree/return_item/eligibility_validator/default.rb +1 -1
  105. data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +1 -1
  106. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +1 -1
  107. data/app/models/spree/return_item/eligibility_validator/order_completed.rb +1 -1
  108. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +1 -1
  109. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
  110. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +6 -6
  111. data/app/models/spree/return_item.rb +31 -30
  112. data/app/models/spree/return_reason.rb +1 -1
  113. data/app/models/spree/role.rb +1 -1
  114. data/app/models/spree/role_user.rb +1 -1
  115. data/app/models/spree/shipment.rb +37 -29
  116. data/app/models/spree/shipping_method.rb +9 -9
  117. data/app/models/spree/shipping_method_category.rb +2 -2
  118. data/app/models/spree/shipping_rate.rb +12 -10
  119. data/app/models/spree/shipping_rate_tax.rb +5 -4
  120. data/app/models/spree/simple_order_contents.rb +2 -2
  121. data/app/models/spree/state.rb +1 -1
  122. data/app/models/spree/stock/availability.rb +9 -9
  123. data/app/models/spree/stock/availability_validator.rb +3 -3
  124. data/app/models/spree/stock/differentiator.rb +2 -2
  125. data/app/models/spree/stock/estimator.rb +4 -4
  126. data/app/models/spree/stock/inventory_validator.rb +1 -1
  127. data/app/models/spree/stock/package.rb +3 -3
  128. data/app/models/spree/stock_item.rb +5 -5
  129. data/app/models/spree/stock_location.rb +6 -6
  130. data/app/models/spree/stock_movement.rb +2 -2
  131. data/app/models/spree/stock_quantities.rb +2 -2
  132. data/app/models/spree/store.rb +3 -3
  133. data/app/models/spree/store_credit.rb +30 -29
  134. data/app/models/spree/store_credit_category.rb +2 -2
  135. data/app/models/spree/store_credit_event.rb +6 -6
  136. data/app/models/spree/store_credit_reason.rb +1 -1
  137. data/app/models/spree/store_credit_type.rb +3 -3
  138. data/app/models/spree/store_selector/by_server_name.rb +1 -1
  139. data/app/models/spree/store_selector/legacy.rb +1 -1
  140. data/app/models/spree/tax/item_tax.rb +1 -0
  141. data/app/models/spree/tax/order_tax.rb +1 -0
  142. data/app/models/spree/tax_category.rb +3 -3
  143. data/app/models/spree/tax_rate.rb +5 -5
  144. data/app/models/spree/tax_rate_tax_category.rb +2 -2
  145. data/app/models/spree/taxon/active_storage_attachment.rb +2 -2
  146. data/app/models/spree/taxon/paperclip_attachment.rb +4 -4
  147. data/app/models/spree/taxon.rb +16 -17
  148. data/app/models/spree/taxon_brand_selector.rb +3 -3
  149. data/app/models/spree/unauthorized_redirect_handler.rb +1 -1
  150. data/app/models/spree/unit_cancel.rb +4 -4
  151. data/app/models/spree/user_address.rb +3 -3
  152. data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +6 -8
  153. data/app/models/spree/user_last_url_storer.rb +1 -1
  154. data/app/models/spree/variant/price_selector.rb +1 -1
  155. data/app/models/spree/variant/scopes.rb +9 -9
  156. data/app/models/spree/variant.rb +25 -25
  157. data/app/models/spree/variant_property_rule.rb +2 -2
  158. data/app/models/spree/variant_property_rule_condition.rb +1 -1
  159. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +4 -4
  160. data/app/models/spree/wallet/default_payment_builder.rb +1 -1
  161. data/app/models/spree/wallet_payment_source.rb +2 -2
  162. data/app/models/spree/zone.rb +18 -18
  163. data/app/models/spree/zone_member.rb +1 -1
  164. data/app/subscribers/spree/carton_shipped_mailer_subscriber.rb +2 -2
  165. data/app/subscribers/spree/order_cancel_mailer_subscriber.rb +2 -2
  166. data/app/subscribers/spree/order_confirmation_mailer_subscriber.rb +2 -2
  167. data/app/subscribers/spree/order_inventory_cancellation_mailer_subscriber.rb +2 -2
  168. data/app/subscribers/spree/reimbursement_mailer_subscriber.rb +2 -2
  169. data/config/initializers/assets.rb +1 -1
  170. data/config/initializers/db_query_matchers.rb +9 -0
  171. data/config/initializers/friendly_id.rb +2 -2
  172. data/config/initializers/inflections.rb +1 -1
  173. data/config/initializers/money.rb +1 -1
  174. data/config/locales/en.yml +1 -0
  175. data/db/default/spree/countries.rb +7 -7
  176. data/db/default/spree/return_reasons.rb +11 -11
  177. data/db/default/spree/stock_locations.rb +1 -1
  178. data/db/default/spree/store_credit.rb +3 -4
  179. data/db/default/spree/stores.rb +1 -1
  180. data/db/default/spree/zones.rb +5 -5
  181. data/db/migrate/20160101010000_solidus_one_four.rb +16 -16
  182. data/db/migrate/20160420044191_create_spree_wallet_payment_sources.rb +3 -3
  183. data/db/migrate/20160420181916_migrate_credit_cards_to_wallet_payment_sources.rb +7 -6
  184. data/db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb +10 -10
  185. data/db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb +6 -6
  186. data/db/migrate/20161129035810_add_index_to_spree_payments_number.rb +1 -1
  187. data/db/migrate/20170319191942_remove_order_id_from_inventory_units.rb +4 -4
  188. data/db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb +9 -16
  189. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +1 -0
  190. data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +3 -3
  191. data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +1 -1
  192. data/db/migrate/20250214094207_add_reverse_charge_status_to_store.rb +1 -1
  193. data/db/migrate/20250225051308_add_vat_id_email_and_reverse_charge_status_to_addresses.rb +1 -1
  194. data/db/seeds.rb +3 -3
  195. data/lib/generators/solidus/install/app_templates/authentication/custom.rb +2 -2
  196. data/lib/generators/solidus/install/app_templates/authentication/devise.rb +3 -3
  197. data/lib/generators/solidus/install/app_templates/authentication/existing.rb +1 -1
  198. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
  199. data/lib/generators/solidus/install/app_templates/payment_method/braintree.rb +1 -1
  200. data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +1 -1
  201. data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +2 -2
  202. data/lib/generators/solidus/install/install_generator.rb +51 -51
  203. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -0
  204. data/lib/generators/solidus/update/update_generator.rb +29 -29
  205. data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -6
  206. data/lib/generators/spree/dummy/dummy_generator.rb +22 -24
  207. data/lib/generators/spree/dummy/templates/rails/boot.rb +3 -3
  208. data/lib/generators/spree/dummy/templates/rails/test.rb +4 -4
  209. data/lib/solidus_core.rb +1 -1
  210. data/lib/spree/app_configuration.rb +59 -47
  211. data/lib/spree/bus.rb +1 -1
  212. data/lib/spree/config.rb +1 -1
  213. data/lib/spree/core/active_merchant_dependencies.rb +8 -8
  214. data/lib/spree/core/class_constantizer.rb +1 -1
  215. data/lib/spree/core/engine.rb +15 -15
  216. data/lib/spree/core/environment.rb +1 -1
  217. data/lib/spree/core/environment_extension.rb +2 -2
  218. data/lib/spree/core/importer/order.rb +15 -15
  219. data/lib/spree/core/importer/product.rb +4 -4
  220. data/lib/spree/core/importer.rb +2 -2
  221. data/lib/spree/core/null_promotion_configuration.rb +7 -7
  222. data/lib/spree/core/permalinks.rb +1 -1
  223. data/lib/spree/core/product_filters.rb +94 -93
  224. data/lib/spree/core/role_configuration.rb +3 -3
  225. data/lib/spree/core/search/base.rb +5 -6
  226. data/lib/spree/core/search/variant.rb +3 -3
  227. data/lib/spree/core/stock_configuration.rb +10 -49
  228. data/lib/spree/core/validators/email.rb +1 -1
  229. data/lib/spree/core/version.rb +3 -3
  230. data/lib/spree/core/versioned_value.rb +4 -6
  231. data/lib/spree/core.rb +49 -49
  232. data/lib/spree/deprecated_instance_variable_proxy.rb +1 -1
  233. data/lib/spree/deprecation.rb +1 -1
  234. data/lib/spree/deprecator.rb +2 -2
  235. data/lib/spree/i18n.rb +2 -2
  236. data/lib/spree/localized_number.rb +3 -3
  237. data/lib/spree/manipulative_query_monitor.rb +19 -0
  238. data/lib/spree/migrations.rb +2 -2
  239. data/lib/spree/permitted_attributes.rb +10 -10
  240. data/lib/spree/preferences/configuration.rb +5 -5
  241. data/lib/spree/preferences/preferable.rb +8 -10
  242. data/lib/spree/preferences/preferable_class_methods.rb +16 -16
  243. data/lib/spree/preferences/preference_differentiator.rb +1 -1
  244. data/lib/spree/preferences/scoped_store.rb +2 -2
  245. data/lib/spree/preferences/static_model_preferences.rb +2 -2
  246. data/lib/spree/preferences/store.rb +6 -6
  247. data/lib/spree/testing_support/ability_helpers.rb +30 -30
  248. data/lib/spree/testing_support/authorization_helpers.rb +6 -5
  249. data/lib/spree/testing_support/blacklist_urls.rb +1 -1
  250. data/lib/spree/testing_support/bus_helpers.rb +1 -1
  251. data/lib/spree/testing_support/capybara_driver.rb +1 -1
  252. data/lib/spree/testing_support/capybara_ext.rb +12 -12
  253. data/lib/spree/testing_support/common_rake.rb +17 -16
  254. data/lib/spree/testing_support/dummy_ability.rb +1 -1
  255. data/lib/spree/testing_support/dummy_app/migrations.rb +1 -1
  256. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +5 -5
  257. data/lib/spree/testing_support/dummy_app/routes.rb +1 -1
  258. data/lib/spree/testing_support/dummy_app.rb +34 -34
  259. data/lib/spree/testing_support/extension_rake.rb +2 -2
  260. data/lib/spree/testing_support/factories/address_factory.rb +12 -12
  261. data/lib/spree/testing_support/factories/adjustment_factory.rb +7 -7
  262. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
  263. data/lib/spree/testing_support/factories/calculator_factory.rb +6 -6
  264. data/lib/spree/testing_support/factories/carton_factory.rb +1 -1
  265. data/lib/spree/testing_support/factories/country_factory.rb +3 -3
  266. data/lib/spree/testing_support/factories/credit_card_factory.rb +3 -3
  267. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
  268. data/lib/spree/testing_support/factories/image_factory.rb +2 -2
  269. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +4 -4
  270. data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
  271. data/lib/spree/testing_support/factories/option_type_factory.rb +2 -2
  272. data/lib/spree/testing_support/factories/option_value_factory.rb +2 -2
  273. data/lib/spree/testing_support/factories/order_factory.rb +16 -16
  274. data/lib/spree/testing_support/factories/payment_factory.rb +9 -9
  275. data/lib/spree/testing_support/factories/payment_method_factory.rb +10 -10
  276. data/lib/spree/testing_support/factories/price_factory.rb +2 -2
  277. data/lib/spree/testing_support/factories/product_factory.rb +2 -2
  278. data/lib/spree/testing_support/factories/product_option_type_factory.rb +1 -1
  279. data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
  280. data/lib/spree/testing_support/factories/property_factory.rb +3 -3
  281. data/lib/spree/testing_support/factories/refund_factory.rb +2 -2
  282. data/lib/spree/testing_support/factories/refund_reason_factory.rb +1 -1
  283. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  284. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +1 -1
  285. data/lib/spree/testing_support/factories/return_authorization_factory.rb +3 -3
  286. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  287. data/lib/spree/testing_support/factories/return_reason_factory.rb +1 -1
  288. data/lib/spree/testing_support/factories/role_factory.rb +2 -2
  289. data/lib/spree/testing_support/factories/shipment_factory.rb +3 -3
  290. data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
  291. data/lib/spree/testing_support/factories/shipping_method_factory.rb +7 -7
  292. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +1 -1
  293. data/lib/spree/testing_support/factories/state_factory.rb +4 -4
  294. data/lib/spree/testing_support/factories/stock_item_factory.rb +1 -1
  295. data/lib/spree/testing_support/factories/stock_location_factory.rb +7 -7
  296. data/lib/spree/testing_support/factories/stock_movement_factory.rb +3 -3
  297. data/lib/spree/testing_support/factories/stock_package_factory.rb +3 -3
  298. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +1 -1
  299. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -8
  300. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
  301. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +1 -1
  302. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +6 -6
  303. data/lib/spree/testing_support/factories/store_factory.rb +2 -2
  304. data/lib/spree/testing_support/factories/tax_category_factory.rb +1 -1
  305. data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
  306. data/lib/spree/testing_support/factories/taxon_factory.rb +3 -3
  307. data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -1
  308. data/lib/spree/testing_support/factories/user_factory.rb +2 -2
  309. data/lib/spree/testing_support/factories/variant_factory.rb +2 -2
  310. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +1 -1
  311. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +1 -1
  312. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +1 -1
  313. data/lib/spree/testing_support/factories/zone_factory.rb +3 -3
  314. data/lib/spree/testing_support/factory_bot.rb +1 -1
  315. data/lib/spree/testing_support/flaky.rb +3 -2
  316. data/lib/spree/testing_support/flash.rb +2 -2
  317. data/lib/spree/testing_support/order_walkthrough.rb +7 -7
  318. data/lib/spree/testing_support/preferences.rb +1 -1
  319. data/lib/spree/testing_support/rake.rb +1 -1
  320. data/lib/spree/testing_support/shared_examples/calculator.rb +1 -1
  321. data/lib/spree/testing_support/shared_examples/gallery.rb +7 -7
  322. data/lib/spree/testing_support/shared_examples/order_factory.rb +9 -9
  323. data/lib/spree/testing_support/shared_examples/working_factory.rb +1 -1
  324. data/lib/spree/testing_support/translations.rb +1 -1
  325. data/lib/spree_core.rb +1 -1
  326. data/lib/tasks/payment_method.rake +2 -2
  327. data/solidus_core.gemspec +49 -49
  328. metadata +60 -54
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :taxon, class: 'Spree::Taxon' do
5
- name { 'Ruby on Rails' }
4
+ factory :taxon, class: "Spree::Taxon" do
5
+ name { "Ruby on Rails" }
6
6
  taxonomy_id { (parent&.taxonomy || create(:taxonomy)).id }
7
7
  parent_id { parent&.id || taxonomy.root.id }
8
8
 
9
9
  trait :with_icon do
10
10
  after(:create) do |taxon|
11
- taxon.update(icon: Spree::Core::Engine.root.join('lib', 'spree', 'testing_support', 'fixtures', 'blank.jpg').open)
11
+ taxon.update(icon: Spree::Core::Engine.root.join("lib", "spree", "testing_support", "fixtures", "blank.jpg").open)
12
12
  end
13
13
  end
14
14
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :taxonomy, class: 'Spree::Taxonomy' do
4
+ factory :taxonomy, class: "Spree::Taxonomy" do
5
5
  sequence :name do |seq|
6
6
  "Brand #{seq}"
7
7
  end
@@ -3,7 +3,7 @@
3
3
  FactoryBot.define do
4
4
  factory :user, class: Spree::UserClassHandle.new do
5
5
  email { generate(:email) }
6
- password { 'secret' }
6
+ password { "secret" }
7
7
  password_confirmation { password }
8
8
 
9
9
  trait :with_api_key do
@@ -20,7 +20,7 @@ FactoryBot.define do
20
20
 
21
21
  factory :admin_user do
22
22
  after(:create) do |user, _|
23
- admin_role = Spree::Role.find_by(name: 'admin') || create(:role, name: 'admin')
23
+ admin_role = Spree::Role.find_by(name: "admin") || create(:role, name: "admin")
24
24
  user.spree_roles << admin_role
25
25
  end
26
26
  end
@@ -3,7 +3,7 @@
3
3
  FactoryBot.define do
4
4
  sequence(:random_float) { BigDecimal("#{rand(200)}.#{rand(99)}") }
5
5
 
6
- factory :base_variant, class: 'Spree::Variant' do
6
+ factory :base_variant, class: "Spree::Variant" do
7
7
  price { 19.99 }
8
8
  cost_price { 17.00 }
9
9
  sku { generate(:sku) }
@@ -23,7 +23,7 @@ FactoryBot.define do
23
23
 
24
24
  factory :master_variant do
25
25
  is_master { 1 }
26
- before(:create){ |variant| variant.product.master = variant }
26
+ before(:create) { |variant| variant.product.master = variant }
27
27
  product { build(:base_product) }
28
28
  end
29
29
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :variant_property_rule_condition, class: 'Spree::VariantPropertyRuleCondition' do
4
+ factory :variant_property_rule_condition, class: "Spree::VariantPropertyRuleCondition" do
5
5
  variant_property_rule
6
6
  option_value
7
7
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :variant_property_rule, class: 'Spree::VariantPropertyRule' do
4
+ factory :variant_property_rule, class: "Spree::VariantPropertyRule" do
5
5
  product
6
6
 
7
7
  transient do
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :variant_property_rule_value, class: 'Spree::VariantPropertyRuleValue' do
4
+ factory :variant_property_rule_value, class: "Spree::VariantPropertyRuleValue" do
5
5
  variant_property_rule
6
6
  property
7
7
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  FactoryBot.define do
4
- factory :global_zone, class: 'Spree::Zone' do
5
- initialize_with { Spree::Zone.find_or_initialize_by(name: 'GlobalZone') }
4
+ factory :global_zone, class: "Spree::Zone" do
5
+ initialize_with { Spree::Zone.find_or_initialize_by(name: "GlobalZone") }
6
6
  zone_members do |proxy|
7
7
  zone = proxy.instance_eval { @instance }
8
8
  Spree::Country.all.map do |c|
@@ -11,7 +11,7 @@ FactoryBot.define do
11
11
  end
12
12
  end
13
13
 
14
- factory :zone, class: 'Spree::Zone' do
14
+ factory :zone, class: "Spree::Zone" do
15
15
  sequence(:name) { |i| "Zone #{i}" }
16
16
 
17
17
  trait :with_country do
@@ -14,7 +14,7 @@ module Spree
14
14
  PATHS = SEQUENCES + FACTORIES
15
15
 
16
16
  def self.definition_file_paths
17
- @paths ||= PATHS.map { |path| path.sub(/.rb\z/, '') }
17
+ @paths ||= PATHS.map { |path| path.sub(/.rb\z/, "") }
18
18
  end
19
19
 
20
20
  def self.check_version
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require 'rspec/retry'
2
+
3
+ require "rspec/retry"
3
4
 
4
5
  # Usage:
5
6
  #
@@ -13,7 +14,7 @@ RSpec.configure do |config|
13
14
  config.display_try_failure_messages = true
14
15
 
15
16
  config.around(:each, :flaky) do |example|
16
- if ENV['CI']
17
+ if ENV["CI"]
17
18
  example.run_with_retry retry: 2
18
19
  else
19
20
  example.run
@@ -12,7 +12,7 @@ module Spree
12
12
  end
13
13
 
14
14
  def assert_successful_update_message(resource)
15
- flash = I18n.t('spree.successfully_updated', resource: I18n.t(resource, scope: 'spree'))
15
+ flash = I18n.t("spree.successfully_updated", resource: I18n.t(resource, scope: "spree"))
16
16
  assert_flash_success(flash)
17
17
  end
18
18
 
@@ -20,7 +20,7 @@ module Spree
20
20
 
21
21
  def convert_flash(flash)
22
22
  if flash.is_a?(Symbol)
23
- flash = I18n.t(flash, scope: 'spree')
23
+ flash = I18n.t(flash, scope: "spree")
24
24
  end
25
25
  flash
26
26
  end
@@ -10,7 +10,7 @@ module Spree
10
10
  def up_to(state, user: nil)
11
11
  # Need to create a valid zone too...
12
12
  @zone = ::FactoryBot.create(:zone)
13
- @country = ::FactoryBot.create(:country)
13
+ @country = Spree::Country.find_by(iso: "US") || ::FactoryBot.create(:country)
14
14
  @state = ::FactoryBot.create(:state, country: @country)
15
15
 
16
16
  @zone.members << Spree::ZoneMember.create(zoneable: @country)
@@ -31,11 +31,11 @@ module Spree
31
31
  order.next!
32
32
 
33
33
  states_to_process = if state == :complete
34
- states
35
- else
36
- end_state_position = states.index(state.to_sym)
37
- states[..end_state_position]
38
- end
34
+ states
35
+ else
36
+ end_state_position = states.index(state.to_sym)
37
+ states[..end_state_position]
38
+ end
39
39
 
40
40
  states_to_process.each do |state_to_process|
41
41
  send(state_to_process, order)
@@ -65,7 +65,7 @@ module Spree
65
65
  credit_card = ::FactoryBot.create(:credit_card, user: order.user)
66
66
  order.payments.create!(payment_method: credit_card.payment_method, amount: order.total, source: credit_card)
67
67
  # TODO: maybe look at some way of making this payment_state change automatic
68
- order.payment_state = 'paid'
68
+ order.payment_state = "paid"
69
69
  order.next!
70
70
  end
71
71
 
@@ -8,7 +8,7 @@ module Spree
8
8
  end
9
9
 
10
10
  def assert_preference_unset(preference)
11
- find("#preferences_#{preference}")['checked'].should be false
11
+ find("#preferences_#{preference}")["checked"].should be false
12
12
  Spree::Config[preference].should be false
13
13
  end
14
14
 
@@ -4,7 +4,7 @@
4
4
  # Rake task spec setup.
5
5
  #
6
6
  RSpec.shared_context "rake" do |task_path:, task_name:|
7
- require 'rake'
7
+ require "rake"
8
8
 
9
9
  let(:task) do
10
10
  Rake::Task[task_name]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.shared_examples_for 'a calculator with a description' do
3
+ RSpec.shared_examples_for "a calculator with a description" do
4
4
  describe ".description" do
5
5
  subject { described_class.description }
6
6
  it "has a description" do
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.shared_examples 'a gallery' do
4
- describe '#images' do
3
+ RSpec.shared_examples "a gallery" do
4
+ describe "#images" do
5
5
  subject { gallery.images }
6
6
 
7
7
  it { is_expected.to be_empty }
8
8
 
9
- context 'there are images' do
10
- include_context 'has multiple images'
9
+ context "there are images" do
10
+ include_context "has multiple images"
11
11
 
12
- it 'has the associated images' do
13
- expect(subject.map(&:id)).
14
- to match_array([first_image.id, second_image.id])
12
+ it "has the associated images" do
13
+ expect(subject.map(&:id))
14
+ .to match_array([first_image.id, second_image.id])
15
15
  end
16
16
  end
17
17
  end
@@ -37,8 +37,8 @@ RSpec.shared_examples "an order with line items factory" do |expected_order_stat
37
37
  factory,
38
38
  stock_location:,
39
39
  line_items_attributes: [
40
- { variant: first_variant, quantity: 1, price: 1 },
41
- { variant: second_variant, quantity: 2, price: 2 }
40
+ {variant: first_variant, quantity: 1, price: 1},
41
+ {variant: second_variant, quantity: 2, price: 2}
42
42
  ],
43
43
  shipment_cost: 3,
44
44
  shipping_method:
@@ -104,7 +104,7 @@ RSpec.shared_examples "an order with line items factory" do |expected_order_stat
104
104
  end
105
105
  end
106
106
 
107
- context 'when shipments should be taxed' do
107
+ context "when shipments should be taxed" do
108
108
  let!(:ship_address) { create(:address) }
109
109
  let!(:tax_zone) { create(:global_zone) } # will include the above address
110
110
  let!(:tax_rate) { create(:tax_rate, amount: 0.10, zone: tax_zone, tax_categories: [tax_category]) }
@@ -112,7 +112,7 @@ RSpec.shared_examples "an order with line items factory" do |expected_order_stat
112
112
  let(:tax_category) { create(:tax_category) }
113
113
  let(:shipping_method) { create(:shipping_method, tax_category:, zones: [tax_zone]) }
114
114
 
115
- it 'shipments get a tax adjustment' do
115
+ it "shipments get a tax adjustment" do
116
116
  order = create(factory, ship_address:, shipping_method:)
117
117
  shipment = order.shipments[0]
118
118
 
@@ -121,20 +121,20 @@ RSpec.shared_examples "an order with line items factory" do |expected_order_stat
121
121
  end
122
122
  end
123
123
 
124
- RSpec.shared_examples 'supplied completed_at is respected' do
125
- context 'when passed a completed_at timestamp' do
124
+ RSpec.shared_examples "supplied completed_at is respected" do
125
+ context "when passed a completed_at timestamp" do
126
126
  let(:completed_at) { 2.days.ago }
127
127
  let(:order) { create(factory, completed_at:) }
128
128
 
129
- it 'respects the timestamp' do
129
+ it "respects the timestamp" do
130
130
  expect(order.completed_at).to be_within(5.seconds).of(completed_at)
131
131
  end
132
132
  end
133
133
 
134
- context 'when no completed_at timestamp is passed' do
134
+ context "when no completed_at timestamp is passed" do
135
135
  let(:order) { create(factory) }
136
136
 
137
- it 'defaults to the current time' do
137
+ it "defaults to the current time" do
138
138
  expect(order.completed_at).to be_within(2.seconds).of(Time.current)
139
139
  end
140
140
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.shared_examples_for 'a working factory' do
3
+ RSpec.shared_examples_for "a working factory" do
4
4
  it "builds successfully" do
5
5
  expect(build(factory)).to be_a(factory_class)
6
6
  end
@@ -4,7 +4,7 @@ module Spree
4
4
  module TestingSupport
5
5
  module Translations
6
6
  def check_missing_translations(page, example)
7
- missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
7
+ missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<"&]/)
8
8
  if missing_translations.any?
9
9
  Rails.logger.info "Found missing translations: #{missing_translations.inspect}"
10
10
  Rails.logger.info "In spec: #{example.location}"
data/lib/spree_core.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/core'
3
+ require "spree/core"
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  namespace :payment_method do
4
- desc "Deactivates old payment methods and fixes ActiveRecord::SubclassNotFound error, "\
4
+ desc "Deactivates old payment methods and fixes ActiveRecord::SubclassNotFound error, " \
5
5
  "which happens after switching Payment Service Provider."
6
6
  task deactivate_unsupported_payment_methods: :environment do
7
7
  Spree::PaymentMethod.pluck(:id, :type).select do |id, type|
@@ -24,6 +24,6 @@ namespace :payment_method do
24
24
  available_to_admin=#{false_value}
25
25
  WHERE id=#{id};
26
26
  SQL
27
- )
27
+ )
28
28
  end
29
29
  end
data/solidus_core.gemspec CHANGED
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/lib/spree/core/version.rb'
3
+ require_relative "../core/lib/spree/core/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.platform = Gem::Platform::RUBY
7
- s.name = 'solidus_core'
8
- s.version = Spree.solidus_version
9
- s.summary = 'Essential models, mailers, and classes for the Solidus e-commerce project.'
6
+ s.platform = Gem::Platform::RUBY
7
+ s.name = "solidus_core"
8
+ s.version = Spree.solidus_version
9
+ s.summary = "Essential models, mailers, and classes for the Solidus e-commerce project."
10
10
  s.description = s.summary
11
11
 
12
- s.author = 'Solidus Team'
13
- s.email = 'contact@solidus.io'
14
- s.homepage = 'http://solidus.io'
15
- s.license = 'BSD-3-Clause'
12
+ s.author = "Solidus Team"
13
+ s.email = "contact@solidus.io"
14
+ s.homepage = "http://solidus.io"
15
+ s.license = "BSD-3-Clause"
16
16
 
17
- s.metadata['rubygems_mfa_required'] = 'true'
17
+ s.metadata["rubygems_mfa_required"] = "true"
18
18
 
19
19
  s.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  f.match(%r{^(spec|bin)/})
21
21
  end
22
22
 
23
- s.required_ruby_version = '>= 3.1.0'
24
- s.required_rubygems_version = '>= 1.8.23'
23
+ s.required_ruby_version = ">= 3.2.0"
24
+ s.required_rubygems_version = ">= 1.8.23"
25
25
 
26
26
  %w[
27
27
  actionmailer actionpack actionview activejob activemodel activerecord
@@ -29,51 +29,51 @@ Gem::Specification.new do |s|
29
29
  ].each do |rails_dep|
30
30
  s.add_dependency rails_dep, [
31
31
  ">= #{Spree.minimum_required_rails_version}",
32
- "< 8.1.0.beta1"
32
+ "< 8.2"
33
33
  ]
34
34
  end
35
35
 
36
- s.add_dependency 'activemerchant', '~> 1.66'
37
- s.add_dependency 'acts_as_list', '< 2.0'
38
- s.add_dependency 'awesome_nested_set', ['~> 3.3', '>= 3.7.0']
39
- s.add_dependency 'cancancan', ['>= 2.2', '< 4.0']
40
- s.add_dependency 'carmen', '~> 1.1.0'
41
- s.add_dependency 'discard', '~> 1.0'
42
- s.add_dependency 'friendly_id', '~> 5.0'
43
- s.add_dependency 'image_processing', '~> 1.10'
44
- s.add_dependency 'kaminari-activerecord', '~> 1.1'
45
- s.add_dependency 'mini_magick', '~> 4.10'
46
- s.add_dependency 'monetize', '~> 1.8'
47
- s.add_dependency 'kt-paperclip', ['>= 6.3', '< 8']
48
- s.add_dependency 'psych', ['>= 4.0.1', '< 6.0']
49
- s.add_dependency 'ransack', ['~> 4.0', '< 5']
50
- s.add_dependency 'sprockets-rails', '!= 3.5.0'
51
- s.add_dependency 'state_machines', ['~> 0.6', '< 0.10.0']
52
- s.add_dependency 'state_machines-activerecord', ['~> 0.6', '< 0.10.0']
53
- s.add_dependency 'omnes', '~> 0.2.2'
36
+ s.add_dependency "activemerchant", "~> 1.66"
37
+ s.add_dependency "acts_as_list", "< 2.0"
38
+ s.add_dependency "awesome_nested_set", ["~> 3.3", ">= 3.7.0"]
39
+ s.add_dependency "cancancan", [">= 2.2", "< 4.0"]
40
+ s.add_dependency "carmen", "~> 1.1.0"
41
+ s.add_dependency "db-query-matchers", "~> 0.14"
42
+ s.add_dependency "discard", "~> 1.0"
43
+ s.add_dependency "friendly_id", "~> 5.0"
44
+ s.add_dependency "image_processing", "~> 1.10"
45
+ s.add_dependency "kaminari-activerecord", "~> 1.1"
46
+ s.add_dependency "mini_magick", "~> 4.10"
47
+ s.add_dependency "monetize", "~> 1.8"
48
+ s.add_dependency "kt-paperclip", [">= 6.3", "< 8"]
49
+ s.add_dependency "psych", [">= 4.0.1", "< 6.0"]
50
+ s.add_dependency "ransack", ["~> 4.0", "< 5"]
51
+ s.add_dependency "state_machines", ["~> 0.6", "< 0.10.0"]
52
+ s.add_dependency "state_machines-activerecord", ["~> 0.6", "< 0.10.0"]
53
+ s.add_dependency "omnes", "~> 0.2.2"
54
54
 
55
- s.post_install_message = <<-MSG
56
- -------------------------------------------------------------
57
- Thank you for using Solidus
58
- -------------------------------------------------------------
59
- If this is a fresh install, don't forget to run the Solidus
60
- installer with the following command:
55
+ s.post_install_message = <<~MSG
56
+ -------------------------------------------------------------
57
+ Thank you for using Solidus
58
+ -------------------------------------------------------------
59
+ If this is a fresh install, don't forget to run the Solidus
60
+ installer with the following command:
61
61
 
62
- $ bin/rails g solidus:install
62
+ $ bin/rails g solidus:install
63
63
 
64
- If you are updating Solidus from an older version, please run
65
- the following commands to complete the update:
64
+ If you are updating Solidus from an older version, please run
65
+ the following commands to complete the update:
66
66
 
67
- $ bin/rails g solidus:update
67
+ $ bin/rails g solidus:update
68
68
 
69
- Please, don't forget to look at the CHANGELOG to see what has changed and
70
- whether you need to perform other tasks.
69
+ Please, don't forget to look at the CHANGELOG to see what has changed and
70
+ whether you need to perform other tasks.
71
71
 
72
- https://github.com/solidusio/solidus/blob/main/CHANGELOG.md
72
+ https://github.com/solidusio/solidus/blob/main/CHANGELOG.md
73
73
 
74
- Please report any issues at:
75
- - https://github.com/solidusio/solidus/issues
76
- - http://slack.solidus.io/
77
- -------------------------------------------------------------
78
- MSG
74
+ Please report any issues at:
75
+ - https://github.com/solidusio/solidus/issues
76
+ - http://slack.solidus.io/
77
+ -------------------------------------------------------------
78
+ MSG
79
79
  end