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,10 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require "generators/spree/dummy/dummy_generator"
|
|
4
|
+
require "logger"
|
|
5
5
|
|
|
6
6
|
class CommonRakeTasks
|
|
7
7
|
include Rake::DSL
|
|
8
|
+
|
|
8
9
|
attr_reader :logger
|
|
9
10
|
|
|
10
11
|
def initialize
|
|
@@ -12,7 +13,7 @@ class CommonRakeTasks
|
|
|
12
13
|
namespace :common do
|
|
13
14
|
task :test_app, :user_class do |_t, args|
|
|
14
15
|
args.with_defaults(user_class: "Spree::LegacyUser")
|
|
15
|
-
lib_name = ENV[
|
|
16
|
+
lib_name = ENV["LIB_NAME"] or
|
|
16
17
|
raise "Please provide a library name via the LIB_NAME environment variable."
|
|
17
18
|
|
|
18
19
|
require lib_name
|
|
@@ -21,30 +22,30 @@ class CommonRakeTasks
|
|
|
21
22
|
|
|
22
23
|
Spree::DummyGenerator.start [
|
|
23
24
|
"--lib-name=#{lib_name}",
|
|
24
|
-
"--quiet"
|
|
25
|
+
"--quiet"
|
|
25
26
|
]
|
|
26
27
|
|
|
27
28
|
# While the dummy app is generated the current directory
|
|
28
29
|
# within ruby is changed to that of the dummy app.
|
|
29
30
|
sh({
|
|
30
|
-
|
|
31
|
+
"FRONTEND" => ENV["FRONTEND"] || "none"
|
|
31
32
|
}, [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
"bin/rails",
|
|
34
|
+
"generate",
|
|
35
|
+
"solidus:install",
|
|
35
36
|
Dir.pwd, # use the current dir as Rails.root
|
|
36
37
|
"--auto-accept",
|
|
37
|
-
"--admin-preview=#{ENV.fetch(
|
|
38
|
+
"--admin-preview=#{ENV.fetch("ADMIN_PREVIEW", "false")}",
|
|
38
39
|
"--authentication=none",
|
|
39
40
|
"--payment-method=none",
|
|
40
41
|
"--migrate=false",
|
|
41
42
|
"--seed=false",
|
|
42
43
|
"--sample=false",
|
|
43
44
|
"--user-class=#{args[:user_class]}",
|
|
44
|
-
"--quiet"
|
|
45
|
+
"--quiet"
|
|
45
46
|
].shelljoin)
|
|
46
47
|
|
|
47
|
-
if Bundler.locked_gems.dependencies[
|
|
48
|
+
if Bundler.locked_gems.dependencies["solidus_frontend"]
|
|
48
49
|
sh "bin/rails g solidus_frontend:install --auto-accept"
|
|
49
50
|
end
|
|
50
51
|
|
|
@@ -54,7 +55,7 @@ class CommonRakeTasks
|
|
|
54
55
|
sh "bin/rails db:drop db:create db:migrate VERBOSE=false RAILS_ENV=test"
|
|
55
56
|
|
|
56
57
|
if extension_installation_generator_exists?
|
|
57
|
-
logger.info
|
|
58
|
+
logger.info "Running extension installation generator..."
|
|
58
59
|
sh "bin/rails generate #{rake_generator_namespace}:install --auto-run-migrations"
|
|
59
60
|
end
|
|
60
61
|
end
|
|
@@ -70,8 +71,8 @@ class CommonRakeTasks
|
|
|
70
71
|
private
|
|
71
72
|
|
|
72
73
|
def force_rails_environment_to_test
|
|
73
|
-
ENV["RAILS_ENV"] =
|
|
74
|
-
Rails.env =
|
|
74
|
+
ENV["RAILS_ENV"] = "test"
|
|
75
|
+
Rails.env = "test"
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
def extension_installation_generator_exists?
|
|
@@ -83,11 +84,11 @@ class CommonRakeTasks
|
|
|
83
84
|
end
|
|
84
85
|
|
|
85
86
|
def generator_namespace
|
|
86
|
-
|
|
87
|
+
(ENV["LIB_NAMESPACE"]&.underscore || ENV["LIB_NAME"]).to_s
|
|
87
88
|
end
|
|
88
89
|
|
|
89
90
|
def rake_generator_namespace
|
|
90
|
-
generator_namespace.
|
|
91
|
+
generator_namespace.tr("/", ":")
|
|
91
92
|
end
|
|
92
93
|
end
|
|
93
94
|
|
|
@@ -11,7 +11,7 @@ module DummyApp
|
|
|
11
11
|
# Disconnect to avoid "database is being accessed by other users" on postgres
|
|
12
12
|
ActiveRecord::Base.remove_connection
|
|
13
13
|
|
|
14
|
-
sh
|
|
14
|
+
sh "rake db:reset VERBOSE=false"
|
|
15
15
|
|
|
16
16
|
# We have a brand new database, so we must re-establish our connection
|
|
17
17
|
ActiveRecord::Base.establish_connection
|
|
@@ -6,9 +6,9 @@ module DummyApp
|
|
|
6
6
|
|
|
7
7
|
def initialize(gem_root:, lib_name:)
|
|
8
8
|
task :dummy_environment do
|
|
9
|
-
ENV[
|
|
9
|
+
ENV["RAILS_ENV"] = "test"
|
|
10
10
|
require lib_name
|
|
11
|
-
require
|
|
11
|
+
require "spree/testing_support/dummy_app"
|
|
12
12
|
DummyApp.setup(
|
|
13
13
|
gem_root:,
|
|
14
14
|
lib_name:,
|
|
@@ -45,12 +45,12 @@ namespace :db do
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
desc "Recreates the test database and re-runs all migrations"
|
|
48
|
-
task reset: [
|
|
48
|
+
task reset: ["db:drop", "db:create", "db:migrate"]
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
desc "Open a sandboxed console in the test environment"
|
|
52
52
|
task console: :dummy_environment do
|
|
53
|
-
require
|
|
54
|
-
require
|
|
53
|
+
require "rails/commands"
|
|
54
|
+
require "rails/commands/console/console_command"
|
|
55
55
|
Rails::Console.new(Rails.application, sandbox: true, environment: "test").start
|
|
56
56
|
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
ENV[
|
|
4
|
-
ENV[
|
|
3
|
+
ENV["RAILS_ENV"] = "test"
|
|
4
|
+
ENV["DISABLE_DATABASE_ENVIRONMENT_CHECK"] = "1"
|
|
5
5
|
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
10
|
-
require
|
|
6
|
+
require "rails"
|
|
7
|
+
require "active_record/railtie"
|
|
8
|
+
require "action_controller/railtie"
|
|
9
|
+
require "action_mailer/railtie"
|
|
10
|
+
require "active_storage/engine"
|
|
11
11
|
|
|
12
|
-
Rails.env =
|
|
12
|
+
Rails.env = "test"
|
|
13
13
|
|
|
14
|
-
require
|
|
14
|
+
require "solidus_core"
|
|
15
15
|
|
|
16
16
|
# @private
|
|
17
17
|
class ApplicationController < ActionController::Base
|
|
@@ -39,7 +39,7 @@ end
|
|
|
39
39
|
module DummyApp
|
|
40
40
|
def self.setup(gem_root:, lib_name:, auto_migrate: true)
|
|
41
41
|
ENV["LIB_NAME"] = lib_name
|
|
42
|
-
root = Pathname(gem_root).join(
|
|
42
|
+
root = Pathname(gem_root).join("spec/dummy")
|
|
43
43
|
root.join("app/assets/config").mkpath
|
|
44
44
|
root.join("app/assets/config/manifest.js").write("// Intentionally empty\n")
|
|
45
45
|
|
|
@@ -48,7 +48,7 @@ module DummyApp
|
|
|
48
48
|
|
|
49
49
|
# Raise on deprecation warnings.
|
|
50
50
|
# NOTE: This needs to happen after the application is initialized.
|
|
51
|
-
if ENV[
|
|
51
|
+
if ENV["SOLIDUS_RAISE_DEPRECATIONS"].present?
|
|
52
52
|
Spree.deprecator.behavior = :raise
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -77,19 +77,19 @@ module DummyApp
|
|
|
77
77
|
config.cache_classes = true
|
|
78
78
|
|
|
79
79
|
# Make debugging easier:
|
|
80
|
-
if Rails.gem_version >= Gem::Version.new(
|
|
80
|
+
if Rails.gem_version >= Gem::Version.new("7.1")
|
|
81
81
|
config.action_controller.raise_on_missing_callback_actions = true
|
|
82
82
|
config.action_dispatch.show_exceptions = :none
|
|
83
83
|
else
|
|
84
84
|
config.action_dispatch.show_exceptions = false
|
|
85
85
|
end
|
|
86
86
|
config.consider_all_requests_local = true
|
|
87
|
-
config.active_support.deprecation = ENV[
|
|
87
|
+
config.active_support.deprecation = ENV["RAILS_DEPRECATIONS_BEHAVIOR"].presence&.to_sym || :stderr
|
|
88
88
|
config.log_level = :debug
|
|
89
89
|
|
|
90
90
|
# Improve test suite performance:
|
|
91
91
|
config.eager_load = false
|
|
92
|
-
config.public_file_server.headers = {
|
|
92
|
+
config.public_file_server.headers = {"Cache-Control" => "public, max-age=3600"}
|
|
93
93
|
config.cache_store = :memory_store
|
|
94
94
|
|
|
95
95
|
# We don't use a web server, so we let Rails serve assets.
|
|
@@ -102,66 +102,66 @@ module DummyApp
|
|
|
102
102
|
config.active_job.queue_adapter = :test
|
|
103
103
|
|
|
104
104
|
# No need to use credentials file in a test environment.
|
|
105
|
-
config.secret_key_base =
|
|
105
|
+
config.secret_key_base = "SECRET_TOKEN"
|
|
106
106
|
|
|
107
107
|
# Set the preview path within the dummy app:
|
|
108
108
|
if ActionMailer::Base.respond_to? :preview_paths # Rails 7.1+
|
|
109
|
-
config.action_mailer.preview_paths << File.expand_path(
|
|
109
|
+
config.action_mailer.preview_paths << File.expand_path("dummy_app/mailer_previews", __dir__)
|
|
110
110
|
else
|
|
111
|
-
config.action_mailer.preview_path = File.expand_path(
|
|
111
|
+
config.action_mailer.preview_path = File.expand_path("dummy_app/mailer_previews", __dir__)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
config.active_record.dump_schema_after_migration = false
|
|
115
115
|
|
|
116
116
|
# Configure active storage to use storage within tmp folder
|
|
117
|
-
initializer
|
|
117
|
+
initializer "solidus.active_storage" do
|
|
118
118
|
config.active_storage.service_configurations = {
|
|
119
119
|
test: {
|
|
120
|
-
service:
|
|
121
|
-
root: Rails.root.join(
|
|
120
|
+
service: "Disk",
|
|
121
|
+
root: Rails.root.join("tmp", "storage")
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
config.active_storage.service = :test
|
|
125
|
-
config.active_storage.variant_processor = ENV.fetch(
|
|
125
|
+
config.active_storage.variant_processor = ENV.fetch("ACTIVE_STORAGE_VARIANT_PROCESSOR", :vips).to_sym
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
# Avoid issues if an old spec/dummy still exists
|
|
129
|
-
config.paths[
|
|
130
|
-
config.paths[
|
|
129
|
+
config.paths["config/initializers"] = []
|
|
130
|
+
config.paths["config/environments"] = []
|
|
131
131
|
|
|
132
132
|
migration_dirs = Rails.application.migration_railties.flat_map do |engine|
|
|
133
133
|
if engine.respond_to?(:paths)
|
|
134
|
-
engine.paths[
|
|
134
|
+
engine.paths["db/migrate"].to_a
|
|
135
135
|
else
|
|
136
136
|
[]
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
|
-
config.paths[
|
|
139
|
+
config.paths["db/migrate"] = migration_dirs
|
|
140
140
|
ActiveRecord::Migrator.migrations_paths = migration_dirs
|
|
141
141
|
ActiveRecord::Migration.verbose = false
|
|
142
142
|
|
|
143
|
-
config.assets.paths << File.expand_path(
|
|
144
|
-
config.assets.paths << File.expand_path(
|
|
143
|
+
config.assets.paths << File.expand_path("dummy_app/assets/javascripts", __dir__)
|
|
144
|
+
config.assets.paths << File.expand_path("dummy_app/assets/stylesheets", __dir__)
|
|
145
145
|
config.assets.css_compressor = nil
|
|
146
146
|
|
|
147
|
-
config.paths["config/database"] = File.expand_path(
|
|
148
|
-
config.paths[
|
|
147
|
+
config.paths["config/database"] = File.expand_path("dummy_app/database.yml", __dir__)
|
|
148
|
+
config.paths["config/routes.rb"] = File.expand_path("dummy_app/routes.rb", __dir__)
|
|
149
149
|
|
|
150
150
|
ActionMailer::Base.default from: "store@example.com"
|
|
151
151
|
end
|
|
152
152
|
end
|
|
153
153
|
|
|
154
|
-
require
|
|
154
|
+
require "spree/testing_support/dummy_app/migrations"
|
|
155
155
|
|
|
156
156
|
ActiveSupport.on_load(:action_controller) do
|
|
157
157
|
wrap_parameters format: [:json]
|
|
158
158
|
end
|
|
159
159
|
|
|
160
|
-
Spree.user_class =
|
|
160
|
+
Spree.user_class = "Spree::LegacyUser"
|
|
161
161
|
Spree.load_defaults(Spree.solidus_version)
|
|
162
162
|
Spree.config do |config|
|
|
163
|
-
if
|
|
164
|
-
config.image_attachment_module =
|
|
165
|
-
config.taxon_attachment_module =
|
|
163
|
+
if ENV["DISABLE_ACTIVE_STORAGE"] == "true"
|
|
164
|
+
config.image_attachment_module = "Spree::Image::PaperclipAttachment"
|
|
165
|
+
config.taxon_attachment_module = "Spree::Taxon::PaperclipAttachment"
|
|
166
166
|
end
|
|
167
167
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "spree/testing_support/common_rake"
|
|
4
4
|
|
|
5
5
|
desc "Generates a dummy app for testing an extension"
|
|
6
6
|
namespace :extension do
|
|
7
7
|
task :test_app, [:user_class] do |_t, args|
|
|
8
8
|
Spree::DummyGeneratorHelper.inject_extension_requirements = true
|
|
9
|
-
Rake::Task[
|
|
9
|
+
Rake::Task["common:test_app"].invoke(args[:user_class])
|
|
10
10
|
end
|
|
11
11
|
end
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :address, class:
|
|
4
|
+
factory :address, class: "Spree::Address" do
|
|
5
5
|
transient do
|
|
6
6
|
# There's `Spree::Address#country_iso=`, prohibiting me from using `country_iso` here
|
|
7
|
-
country_iso_code {
|
|
8
|
-
state_code {
|
|
7
|
+
country_iso_code { "US" }
|
|
8
|
+
state_code { "AL" }
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
name {
|
|
12
|
-
company {
|
|
13
|
-
address1 {
|
|
14
|
-
address2 {
|
|
15
|
-
city {
|
|
11
|
+
name { "John Von Doe" }
|
|
12
|
+
company { "Company" }
|
|
13
|
+
address1 { "10 Lovely Street" }
|
|
14
|
+
address2 { "Northwest" }
|
|
15
|
+
city { "Herndon" }
|
|
16
16
|
sequence(:zipcode, 10001) { |i| i.to_s }
|
|
17
|
-
phone {
|
|
18
|
-
alternative_phone {
|
|
17
|
+
phone { "555-555-0199" }
|
|
18
|
+
alternative_phone { "555-555-0199" }
|
|
19
19
|
|
|
20
20
|
country do |address|
|
|
21
21
|
if address.state
|
|
@@ -35,10 +35,10 @@ FactoryBot.define do
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
factory :ship_address, parent: :address do
|
|
38
|
-
address1 {
|
|
38
|
+
address1 { "A Different Road" }
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
factory :bill_address, parent: :address do
|
|
42
|
-
address1 {
|
|
42
|
+
address1 { "PO Box 1337" }
|
|
43
43
|
end
|
|
44
44
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :adjustment, class:
|
|
4
|
+
factory :adjustment, class: "Spree::Adjustment" do
|
|
5
5
|
order
|
|
6
6
|
adjustable { order }
|
|
7
7
|
amount { 100.0 }
|
|
8
|
-
label {
|
|
8
|
+
label { "Shipping" }
|
|
9
9
|
association(:source, factory: :tax_rate)
|
|
10
10
|
|
|
11
11
|
after(:build) do |adjustment|
|
|
@@ -15,19 +15,19 @@ FactoryBot.define do
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
factory :tax_adjustment, class:
|
|
18
|
+
factory :tax_adjustment, class: "Spree::Adjustment" do
|
|
19
19
|
order { adjustable.order }
|
|
20
20
|
association(:adjustable, factory: :line_item)
|
|
21
21
|
amount { 10.0 }
|
|
22
|
-
label {
|
|
22
|
+
label { "VAT 5%" }
|
|
23
23
|
|
|
24
24
|
after(:create) do |adjustment|
|
|
25
25
|
# Set correct tax category, so that adjustment amount is not 0
|
|
26
26
|
if adjustment.adjustable.is_a?(Spree::LineItem)
|
|
27
|
-
if adjustment.adjustable.tax_category.present?
|
|
28
|
-
|
|
27
|
+
adjustment.source.tax_categories = if adjustment.adjustable.tax_category.present?
|
|
28
|
+
[adjustment.adjustable.tax_category]
|
|
29
29
|
else
|
|
30
|
-
|
|
30
|
+
[]
|
|
31
31
|
end
|
|
32
32
|
adjustment.source.save
|
|
33
33
|
adjustment.update!(amount: adjustment.source.compute_amount(adjustment.adjustable))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :adjustment_reason, class:
|
|
4
|
+
factory :adjustment_reason, class: "Spree::AdjustmentReason" do
|
|
5
5
|
sequence(:name) { |n| "Refund for return ##{n}" }
|
|
6
6
|
sequence(:code) { |n| "Code #{n}" }
|
|
7
7
|
end
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :flat_rate_calculator, aliases: [:calculator], class:
|
|
4
|
+
factory :flat_rate_calculator, aliases: [:calculator], class: "Spree::Calculator::FlatRate" do
|
|
5
5
|
preferred_amount { 10.0 }
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
factory :no_amount_calculator, class:
|
|
8
|
+
factory :no_amount_calculator, class: "Spree::Calculator::FlatRate" do
|
|
9
9
|
preferred_amount { 0 }
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
factory :default_tax_calculator, class:
|
|
12
|
+
factory :default_tax_calculator, class: "Spree::Calculator::DefaultTax" do
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
factory :flat_fee_calculator, class:
|
|
15
|
+
factory :flat_fee_calculator, class: "Spree::Calculator::FlatFee" do
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
factory :shipping_calculator, class:
|
|
18
|
+
factory :shipping_calculator, class: "Spree::Calculator::Shipping::FlatRate" do
|
|
19
19
|
preferred_amount { 10.0 }
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
factory :shipping_no_amount_calculator, class:
|
|
22
|
+
factory :shipping_no_amount_calculator, class: "Spree::Calculator::Shipping::FlatRate" do
|
|
23
23
|
preferred_amount { 0 }
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "carmen"
|
|
4
4
|
|
|
5
5
|
FactoryBot.define do
|
|
6
|
-
factory :country, class:
|
|
7
|
-
iso {
|
|
6
|
+
factory :country, class: "Spree::Country" do
|
|
7
|
+
iso { "US" }
|
|
8
8
|
|
|
9
9
|
transient do
|
|
10
10
|
carmen_country { Carmen::Country.coded(iso) || fail("Unknown country iso code: #{iso.inspect}") }
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :credit_card, class:
|
|
4
|
+
factory :credit_card, class: "Spree::CreditCard" do
|
|
5
5
|
verification_value { 123 }
|
|
6
6
|
month { 12 }
|
|
7
7
|
year { 1.year.from_now.year }
|
|
8
|
-
number {
|
|
9
|
-
name {
|
|
8
|
+
number { "4111111111111111" }
|
|
9
|
+
name { "Spree Commerce" }
|
|
10
10
|
association(:payment_method, factory: :credit_card_payment_method)
|
|
11
11
|
association(:address)
|
|
12
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :customer_return, class:
|
|
4
|
+
factory :customer_return, class: "Spree::CustomerReturn" do
|
|
5
5
|
association(:stock_location, factory: :stock_location)
|
|
6
6
|
|
|
7
7
|
transient do
|
|
@@ -25,7 +25,7 @@ FactoryBot.define do
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
# for the case when you want to supply existing return items instead of generating some
|
|
28
|
-
factory :customer_return_without_return_items, class:
|
|
28
|
+
factory :customer_return_without_return_items, class: "Spree::CustomerReturn" do
|
|
29
29
|
association(:stock_location, factory: :stock_location)
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :image, class:
|
|
5
|
-
attachment { Spree::Core::Engine.root.join(
|
|
4
|
+
factory :image, class: "Spree::Image" do
|
|
5
|
+
attachment { Spree::Core::Engine.root.join("lib", "spree", "testing_support", "fixtures", "blank.jpg").open }
|
|
6
6
|
end
|
|
7
7
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :inventory_unit, class:
|
|
4
|
+
factory :inventory_unit, class: "Spree::InventoryUnit" do
|
|
5
5
|
transient do
|
|
6
6
|
order { nil }
|
|
7
7
|
stock_location { nil }
|
|
@@ -15,12 +15,12 @@ FactoryBot.define do
|
|
|
15
15
|
build(:line_item, variant:)
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
|
-
state {
|
|
18
|
+
state { "on_hand" }
|
|
19
19
|
shipment do
|
|
20
20
|
if stock_location
|
|
21
|
-
build(:shipment, state:
|
|
21
|
+
build(:shipment, state: "pending", order: line_item.order, stock_location:)
|
|
22
22
|
else
|
|
23
|
-
build(:shipment, state:
|
|
23
|
+
build(:shipment, state: "pending", order: line_item.order)
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
# return_authorization
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :line_item, class:
|
|
4
|
+
factory :line_item, class: "Spree::LineItem" do
|
|
5
5
|
quantity { 1 }
|
|
6
|
-
price { BigDecimal(
|
|
6
|
+
price { BigDecimal("10.00") }
|
|
7
7
|
order
|
|
8
8
|
transient do
|
|
9
9
|
product { nil }
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :option_type, class:
|
|
4
|
+
factory :option_type, class: "Spree::OptionType" do
|
|
5
5
|
sequence(:name) { |n| "foo-size-#{n}" }
|
|
6
|
-
presentation {
|
|
6
|
+
presentation { "Size" }
|
|
7
7
|
end
|
|
8
8
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
FactoryBot.define do
|
|
4
|
-
factory :option_value, class:
|
|
4
|
+
factory :option_value, class: "Spree::OptionValue" do
|
|
5
5
|
sequence(:name) { |n| "Size-#{n}" }
|
|
6
6
|
|
|
7
|
-
presentation {
|
|
7
|
+
presentation { "S" }
|
|
8
8
|
option_type
|
|
9
9
|
end
|
|
10
10
|
end
|