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.
- checksums.yaml +4 -4
- data/Rakefile +13 -13
- data/app/controllers/spree/base_controller.rb +2 -2
- data/app/helpers/spree/base_helper.rb +24 -24
- data/app/helpers/spree/checkout_helper.rb +7 -7
- data/app/helpers/spree/core/controller_helpers/auth.rb +1 -1
- data/app/helpers/spree/core/controller_helpers/common.rb +3 -2
- data/app/helpers/spree/core/controller_helpers/order.rb +3 -5
- data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +1 -2
- data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +10 -10
- data/app/helpers/spree/products_helper.rb +5 -5
- data/app/helpers/spree/store_helper.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +3 -3
- data/app/mailers/spree/order_mailer.rb +4 -4
- data/app/mailers/spree/reimbursement_mailer.rb +2 -2
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +5 -5
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +5 -5
- data/app/models/concerns/spree/active_storage_adapter.rb +2 -2
- data/app/models/concerns/spree/adjustment_source.rb +4 -4
- data/app/models/concerns/spree/display_money.rb +2 -2
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/preferences/persistable.rb +1 -1
- data/app/models/concerns/spree/ransackable_attributes.rb +1 -0
- data/app/models/concerns/spree/soft_deletable.rb +2 -1
- data/app/models/concerns/spree/state_change_tracking.rb +1 -1
- data/app/models/concerns/spree/user_address_book.rb +12 -12
- data/app/models/concerns/spree/user_methods.rb +9 -9
- data/app/models/concerns/spree/user_reporting.rb +1 -0
- data/app/models/spree/ability.rb +1 -1
- data/app/models/spree/address/name.rb +1 -1
- data/app/models/spree/address.rb +7 -7
- data/app/models/spree/adjustment.rb +11 -10
- data/app/models/spree/adjustment_reason.rb +2 -2
- data/app/models/spree/billing_integration.rb +2 -2
- data/app/models/spree/calculator/default_tax.rb +2 -2
- data/app/models/spree/calculator/flat_fee.rb +1 -1
- data/app/models/spree/calculator/flat_rate.rb +2 -2
- data/app/models/spree/calculator/returns/default_refund_amount.rb +3 -3
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +2 -2
- data/app/models/spree/calculator/shipping/flat_rate.rb +3 -3
- data/app/models/spree/calculator/shipping/flexi_rate.rb +8 -8
- data/app/models/spree/calculator/shipping/per_item.rb +3 -3
- data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
- data/app/models/spree/calculator.rb +31 -6
- data/app/models/spree/carton.rb +4 -4
- data/app/models/spree/classification.rb +2 -2
- data/app/models/spree/core/state_machines/order/class_methods.rb +3 -3
- data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +1 -1
- data/app/models/spree/country.rb +1 -1
- data/app/models/spree/credit_card.rb +27 -27
- data/app/models/spree/customer_return.rb +5 -4
- data/app/models/spree/distributed_amounts_handler.rb +1 -1
- data/app/models/spree/fulfilment_changer.rb +22 -22
- data/app/models/spree/image/active_storage_attachment.rb +2 -2
- data/app/models/spree/image/paperclip_attachment.rb +8 -8
- data/app/models/spree/in_memory_order_updater.rb +262 -0
- data/app/models/spree/inventory_unit.rb +11 -11
- data/app/models/spree/item_total.rb +1 -1
- data/app/models/spree/legacy_user.rb +2 -2
- data/app/models/spree/line_item.rb +21 -11
- data/app/models/spree/log_entry.rb +3 -3
- data/app/models/spree/mergeable_orders_finder.rb +44 -0
- data/app/models/spree/money.rb +2 -1
- data/app/models/spree/null_promotion_adjuster.rb +1 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/number_generator.rb +1 -1
- data/app/models/spree/order.rb +66 -64
- data/app/models/spree/order_cancellations.rb +1 -3
- data/app/models/spree/order_inventory.rb +5 -8
- data/app/models/spree/order_mutex.rb +1 -1
- data/app/models/spree/order_shipping.rb +1 -1
- data/app/models/spree/order_updater.rb +59 -37
- data/app/models/spree/payment/cancellation.rb +2 -2
- data/app/models/spree/payment/processing.rb +22 -22
- data/app/models/spree/payment.rb +25 -25
- data/app/models/spree/payment_capture_event.rb +2 -2
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +18 -18
- data/app/models/spree/payment_method/check.rb +3 -3
- data/app/models/spree/payment_method/credit_card.rb +1 -1
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +3 -3
- data/app/models/spree/payment_method/store_credit.rb +13 -13
- data/app/models/spree/payment_method.rb +12 -11
- data/app/models/spree/payment_source.rb +2 -2
- data/app/models/spree/permission_sets/dashboard_display.rb +3 -3
- data/app/models/spree/permission_sets/default_customer.rb +1 -1
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +7 -6
- data/app/models/spree/product/scopes.rb +23 -23
- data/app/models/spree/product.rb +37 -41
- data/app/models/spree/product_option_type.rb +2 -2
- data/app/models/spree/product_property.rb +3 -3
- data/app/models/spree/refund.rb +10 -10
- data/app/models/spree/refund_reason.rb +2 -2
- data/app/models/spree/reimbursement/credit.rb +1 -1
- data/app/models/spree/reimbursement.rb +8 -8
- data/app/models/spree/reimbursement_tax_calculator.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +2 -2
- data/app/models/spree/return_authorization.rb +7 -6
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/default.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +1 -1
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +6 -6
- data/app/models/spree/return_item.rb +31 -30
- data/app/models/spree/return_reason.rb +1 -1
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/role_user.rb +1 -1
- data/app/models/spree/shipment.rb +37 -29
- data/app/models/spree/shipping_method.rb +9 -9
- data/app/models/spree/shipping_method_category.rb +2 -2
- data/app/models/spree/shipping_rate.rb +12 -10
- data/app/models/spree/shipping_rate_tax.rb +5 -4
- data/app/models/spree/simple_order_contents.rb +2 -2
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/stock/availability.rb +9 -9
- data/app/models/spree/stock/availability_validator.rb +3 -3
- data/app/models/spree/stock/differentiator.rb +2 -2
- data/app/models/spree/stock/estimator.rb +4 -4
- data/app/models/spree/stock/inventory_validator.rb +1 -1
- data/app/models/spree/stock/package.rb +3 -3
- data/app/models/spree/stock_item.rb +5 -5
- data/app/models/spree/stock_location.rb +6 -6
- data/app/models/spree/stock_movement.rb +2 -2
- data/app/models/spree/stock_quantities.rb +2 -2
- data/app/models/spree/store.rb +3 -3
- data/app/models/spree/store_credit.rb +30 -29
- data/app/models/spree/store_credit_category.rb +2 -2
- data/app/models/spree/store_credit_event.rb +6 -6
- data/app/models/spree/store_credit_reason.rb +1 -1
- data/app/models/spree/store_credit_type.rb +3 -3
- data/app/models/spree/store_selector/by_server_name.rb +1 -1
- data/app/models/spree/store_selector/legacy.rb +1 -1
- data/app/models/spree/tax/item_tax.rb +1 -0
- data/app/models/spree/tax/order_tax.rb +1 -0
- data/app/models/spree/tax_category.rb +3 -3
- data/app/models/spree/tax_rate.rb +5 -5
- data/app/models/spree/tax_rate_tax_category.rb +2 -2
- data/app/models/spree/taxon/active_storage_attachment.rb +2 -2
- data/app/models/spree/taxon/paperclip_attachment.rb +4 -4
- data/app/models/spree/taxon.rb +16 -17
- data/app/models/spree/taxon_brand_selector.rb +3 -3
- data/app/models/spree/unauthorized_redirect_handler.rb +1 -1
- data/app/models/spree/unit_cancel.rb +4 -4
- data/app/models/spree/user_address.rb +3 -3
- data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +6 -8
- data/app/models/spree/user_last_url_storer.rb +1 -1
- data/app/models/spree/variant/price_selector.rb +1 -1
- data/app/models/spree/variant/scopes.rb +9 -9
- data/app/models/spree/variant.rb +25 -25
- data/app/models/spree/variant_property_rule.rb +2 -2
- data/app/models/spree/variant_property_rule_condition.rb +1 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +4 -4
- data/app/models/spree/wallet/default_payment_builder.rb +1 -1
- data/app/models/spree/wallet_payment_source.rb +2 -2
- data/app/models/spree/zone.rb +18 -18
- data/app/models/spree/zone_member.rb +1 -1
- data/app/subscribers/spree/carton_shipped_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_cancel_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_confirmation_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/order_inventory_cancellation_mailer_subscriber.rb +2 -2
- data/app/subscribers/spree/reimbursement_mailer_subscriber.rb +2 -2
- data/config/initializers/assets.rb +1 -1
- data/config/initializers/db_query_matchers.rb +9 -0
- data/config/initializers/friendly_id.rb +2 -2
- data/config/initializers/inflections.rb +1 -1
- data/config/initializers/money.rb +1 -1
- data/config/locales/en.yml +1 -0
- data/db/default/spree/countries.rb +7 -7
- data/db/default/spree/return_reasons.rb +11 -11
- data/db/default/spree/stock_locations.rb +1 -1
- data/db/default/spree/store_credit.rb +3 -4
- data/db/default/spree/stores.rb +1 -1
- data/db/default/spree/zones.rb +5 -5
- data/db/migrate/20160101010000_solidus_one_four.rb +16 -16
- data/db/migrate/20160420044191_create_spree_wallet_payment_sources.rb +3 -3
- data/db/migrate/20160420181916_migrate_credit_cards_to_wallet_payment_sources.rb +7 -6
- data/db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb +10 -10
- data/db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb +6 -6
- data/db/migrate/20161129035810_add_index_to_spree_payments_number.rb +1 -1
- data/db/migrate/20170319191942_remove_order_id_from_inventory_units.rb +4 -4
- data/db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb +9 -16
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +1 -0
- data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +3 -3
- data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +1 -1
- data/db/migrate/20250214094207_add_reverse_charge_status_to_store.rb +1 -1
- data/db/migrate/20250225051308_add_vat_id_email_and_reverse_charge_status_to_addresses.rb +1 -1
- data/db/seeds.rb +3 -3
- data/lib/generators/solidus/install/app_templates/authentication/custom.rb +2 -2
- data/lib/generators/solidus/install/app_templates/authentication/devise.rb +3 -3
- data/lib/generators/solidus/install/app_templates/authentication/existing.rb +1 -1
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/braintree.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +1 -1
- data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +2 -2
- data/lib/generators/solidus/install/install_generator.rb +51 -51
- data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -0
- data/lib/generators/solidus/update/update_generator.rb +29 -29
- data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -6
- data/lib/generators/spree/dummy/dummy_generator.rb +22 -24
- data/lib/generators/spree/dummy/templates/rails/boot.rb +3 -3
- data/lib/generators/spree/dummy/templates/rails/test.rb +4 -4
- data/lib/solidus_core.rb +1 -1
- data/lib/spree/app_configuration.rb +59 -47
- data/lib/spree/bus.rb +1 -1
- data/lib/spree/config.rb +1 -1
- data/lib/spree/core/active_merchant_dependencies.rb +8 -8
- data/lib/spree/core/class_constantizer.rb +1 -1
- data/lib/spree/core/engine.rb +15 -15
- data/lib/spree/core/environment.rb +1 -1
- data/lib/spree/core/environment_extension.rb +2 -2
- data/lib/spree/core/importer/order.rb +15 -15
- data/lib/spree/core/importer/product.rb +4 -4
- data/lib/spree/core/importer.rb +2 -2
- data/lib/spree/core/null_promotion_configuration.rb +7 -7
- data/lib/spree/core/permalinks.rb +1 -1
- data/lib/spree/core/product_filters.rb +94 -93
- data/lib/spree/core/role_configuration.rb +3 -3
- data/lib/spree/core/search/base.rb +5 -6
- data/lib/spree/core/search/variant.rb +3 -3
- data/lib/spree/core/stock_configuration.rb +10 -49
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +3 -3
- data/lib/spree/core/versioned_value.rb +4 -6
- data/lib/spree/core.rb +49 -49
- data/lib/spree/deprecated_instance_variable_proxy.rb +1 -1
- data/lib/spree/deprecation.rb +1 -1
- data/lib/spree/deprecator.rb +2 -2
- data/lib/spree/i18n.rb +2 -2
- data/lib/spree/localized_number.rb +3 -3
- data/lib/spree/manipulative_query_monitor.rb +19 -0
- data/lib/spree/migrations.rb +2 -2
- data/lib/spree/permitted_attributes.rb +10 -10
- data/lib/spree/preferences/configuration.rb +5 -5
- data/lib/spree/preferences/preferable.rb +8 -10
- data/lib/spree/preferences/preferable_class_methods.rb +16 -16
- data/lib/spree/preferences/preference_differentiator.rb +1 -1
- data/lib/spree/preferences/scoped_store.rb +2 -2
- data/lib/spree/preferences/static_model_preferences.rb +2 -2
- data/lib/spree/preferences/store.rb +6 -6
- data/lib/spree/testing_support/ability_helpers.rb +30 -30
- data/lib/spree/testing_support/authorization_helpers.rb +6 -5
- data/lib/spree/testing_support/blacklist_urls.rb +1 -1
- data/lib/spree/testing_support/bus_helpers.rb +1 -1
- data/lib/spree/testing_support/capybara_driver.rb +1 -1
- data/lib/spree/testing_support/capybara_ext.rb +12 -12
- data/lib/spree/testing_support/common_rake.rb +17 -16
- data/lib/spree/testing_support/dummy_ability.rb +1 -1
- data/lib/spree/testing_support/dummy_app/migrations.rb +1 -1
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +5 -5
- data/lib/spree/testing_support/dummy_app/routes.rb +1 -1
- data/lib/spree/testing_support/dummy_app.rb +34 -34
- data/lib/spree/testing_support/extension_rake.rb +2 -2
- data/lib/spree/testing_support/factories/address_factory.rb +12 -12
- data/lib/spree/testing_support/factories/adjustment_factory.rb +7 -7
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/calculator_factory.rb +6 -6
- data/lib/spree/testing_support/factories/carton_factory.rb +1 -1
- data/lib/spree/testing_support/factories/country_factory.rb +3 -3
- data/lib/spree/testing_support/factories/credit_card_factory.rb +3 -3
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
- data/lib/spree/testing_support/factories/image_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +4 -4
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
- data/lib/spree/testing_support/factories/option_type_factory.rb +2 -2
- data/lib/spree/testing_support/factories/option_value_factory.rb +2 -2
- data/lib/spree/testing_support/factories/order_factory.rb +16 -16
- data/lib/spree/testing_support/factories/payment_factory.rb +9 -9
- data/lib/spree/testing_support/factories/payment_method_factory.rb +10 -10
- data/lib/spree/testing_support/factories/price_factory.rb +2 -2
- data/lib/spree/testing_support/factories/product_factory.rb +2 -2
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
- data/lib/spree/testing_support/factories/property_factory.rb +3 -3
- data/lib/spree/testing_support/factories/refund_factory.rb +2 -2
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +3 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/role_factory.rb +2 -2
- data/lib/spree/testing_support/factories/shipment_factory.rb +3 -3
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +7 -7
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/state_factory.rb +4 -4
- data/lib/spree/testing_support/factories/stock_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_location_factory.rb +7 -7
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +3 -3
- data/lib/spree/testing_support/factories/stock_package_factory.rb +3 -3
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -8
- data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +6 -6
- data/lib/spree/testing_support/factories/store_factory.rb +2 -2
- data/lib/spree/testing_support/factories/tax_category_factory.rb +1 -1
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/taxon_factory.rb +3 -3
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +2 -2
- data/lib/spree/testing_support/factories/variant_factory.rb +2 -2
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +3 -3
- data/lib/spree/testing_support/factory_bot.rb +1 -1
- data/lib/spree/testing_support/flaky.rb +3 -2
- data/lib/spree/testing_support/flash.rb +2 -2
- data/lib/spree/testing_support/order_walkthrough.rb +7 -7
- data/lib/spree/testing_support/preferences.rb +1 -1
- data/lib/spree/testing_support/rake.rb +1 -1
- data/lib/spree/testing_support/shared_examples/calculator.rb +1 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +7 -7
- data/lib/spree/testing_support/shared_examples/order_factory.rb +9 -9
- data/lib/spree/testing_support/shared_examples/working_factory.rb +1 -1
- data/lib/spree/testing_support/translations.rb +1 -1
- data/lib/spree_core.rb +1 -1
- data/lib/tasks/payment_method.rake +2 -2
- data/solidus_core.gemspec +49 -49
- metadata +60 -54
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :taxon, class:
|
|
5
|
-
name {
|
|
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(
|
|
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
|
|
@@ -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 {
|
|
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:
|
|
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:
|
|
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:
|
|
4
|
+
factory :variant_property_rule_condition, class: "Spree::VariantPropertyRuleCondition" do
|
|
5
5
|
variant_property_rule
|
|
6
6
|
option_value
|
|
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:
|
|
5
|
-
initialize_with { Spree::Zone.find_or_initialize_by(name:
|
|
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:
|
|
14
|
+
factory :zone, class: "Spree::Zone" do
|
|
15
15
|
sequence(:name) { |i| "Zone #{i}" }
|
|
16
16
|
|
|
17
17
|
trait :with_country do
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
|
|
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[
|
|
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(
|
|
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:
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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 =
|
|
68
|
+
order.payment_state = "paid"
|
|
69
69
|
order.next!
|
|
70
70
|
end
|
|
71
71
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
RSpec.shared_examples
|
|
4
|
-
describe
|
|
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
|
|
10
|
-
include_context
|
|
9
|
+
context "there are images" do
|
|
10
|
+
include_context "has multiple images"
|
|
11
11
|
|
|
12
|
-
it
|
|
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
|
-
{
|
|
41
|
-
{
|
|
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
|
|
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
|
|
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
|
|
125
|
-
context
|
|
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
|
|
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
|
|
134
|
+
context "when no completed_at timestamp is passed" do
|
|
135
135
|
let(:order) { create(factory) }
|
|
136
136
|
|
|
137
|
-
it
|
|
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
|
|
@@ -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,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
|
|
3
|
+
require_relative "../core/lib/spree/core/version"
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
|
-
s.platform
|
|
7
|
-
s.name
|
|
8
|
-
s.version
|
|
9
|
-
s.summary
|
|
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
|
|
13
|
-
s.email
|
|
14
|
-
s.homepage
|
|
15
|
-
s.license
|
|
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[
|
|
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 =
|
|
24
|
-
s.required_rubygems_version =
|
|
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.
|
|
32
|
+
"< 8.2"
|
|
33
33
|
]
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
s.add_dependency
|
|
37
|
-
s.add_dependency
|
|
38
|
-
s.add_dependency
|
|
39
|
-
s.add_dependency
|
|
40
|
-
s.add_dependency
|
|
41
|
-
s.add_dependency
|
|
42
|
-
s.add_dependency
|
|
43
|
-
s.add_dependency
|
|
44
|
-
s.add_dependency
|
|
45
|
-
s.add_dependency
|
|
46
|
-
s.add_dependency
|
|
47
|
-
s.add_dependency
|
|
48
|
-
s.add_dependency
|
|
49
|
-
s.add_dependency
|
|
50
|
-
s.add_dependency
|
|
51
|
-
s.add_dependency
|
|
52
|
-
s.add_dependency
|
|
53
|
-
s.add_dependency
|
|
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 =
|
|
56
|
-
-------------------------------------------------------------
|
|
57
|
-
|
|
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
|