solidus_core 3.0.0 → 4.5.1
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/README.md +1 -2
- data/Rakefile +7 -2
- data/app/assets/images/logo/solidus.svg +18 -1
- data/app/assets/images/logo/solidus_logo.png +0 -0
- data/app/controllers/spree/base_controller.rb +1 -3
- data/app/helpers/spree/base_helper.rb +3 -3
- data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
- data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
- data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
- data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
- data/{lib/spree/core/controller_helpers/current_host.rb → app/helpers/spree/core/controller_helpers/pricing.rb} +6 -4
- data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
- data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
- data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
- data/app/helpers/spree/products_helper.rb +2 -2
- data/app/mailers/spree/base_mailer.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +1 -1
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +30 -11
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +1 -18
- data/app/models/concerns/spree/default_price.rb +30 -10
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/metadata.rb +64 -0
- data/app/models/concerns/spree/named_type.rb +2 -0
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/ransackable_attributes.rb +9 -5
- data/app/models/concerns/spree/user_address_book.rb +19 -10
- data/app/models/concerns/spree/user_methods.rb +40 -6
- data/app/models/spree/address.rb +11 -9
- data/app/models/spree/adjustment.rb +15 -76
- data/app/models/spree/adjustment_reason.rb +2 -0
- data/app/models/spree/calculator/flat_fee.rb +21 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
- data/app/models/spree/carton.rb +3 -3
- data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
- data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
- data/app/models/spree/core/state_machines/order.rb +42 -0
- data/app/models/spree/core/state_machines/payment.rb +61 -0
- data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
- data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
- data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
- data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
- data/app/models/spree/core/state_machines/shipment.rb +58 -0
- data/app/models/spree/country.rb +1 -1
- data/app/models/spree/credit_card.rb +13 -10
- data/app/models/spree/customer_return.rb +6 -3
- data/app/models/spree/deprecated_configurable_class.rb +40 -0
- data/app/models/spree/fulfilment_changer.rb +56 -29
- data/app/models/spree/image/active_storage_attachment.rb +2 -7
- data/app/models/spree/image/paperclip_attachment.rb +2 -2
- data/app/models/spree/inventory_unit.rb +2 -2
- data/app/models/spree/item_total.rb +28 -0
- data/app/models/spree/legacy_user.rb +1 -0
- data/app/models/spree/line_item.rb +26 -8
- data/app/models/spree/log_entry.rb +98 -1
- data/app/models/spree/money.rb +120 -0
- data/app/models/spree/null_promotion_adjuster.rb +13 -0
- data/app/models/spree/null_promotion_advertiser.rb +9 -0
- data/app/models/spree/null_promotion_finder.rb +9 -0
- data/app/models/spree/null_promotion_handler.rb +44 -0
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +4 -3
- data/app/models/spree/order/number_generator.rb +7 -1
- data/app/models/spree/order.rb +143 -96
- data/app/models/spree/order_cancellations.rb +8 -8
- data/app/models/spree/order_inventory.rb +7 -5
- data/app/models/spree/order_merger.rb +5 -7
- data/app/models/spree/order_mutex.rb +2 -2
- data/app/models/spree/order_shipping.rb +15 -19
- data/app/models/spree/order_taxation.rb +7 -4
- data/app/models/spree/order_update_attributes.rb +3 -1
- data/app/models/spree/order_updater.rb +25 -63
- data/app/models/spree/payment/processing.rb +60 -57
- data/app/models/spree/payment.rb +14 -27
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +18 -14
- data/app/models/spree/payment_method/credit_card.rb +0 -4
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +18 -4
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +29 -10
- data/app/models/spree/payment_source.rb +5 -1
- data/app/models/spree/permission_set.rb +11 -0
- data/app/models/spree/permission_sets/base.rb +45 -0
- data/app/models/spree/permission_sets/configuration_display.rb +53 -0
- data/app/models/spree/permission_sets/configuration_management.rb +52 -0
- data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
- data/app/models/spree/permission_sets/default_customer.rb +83 -0
- data/app/models/spree/permission_sets/order_display.rb +50 -0
- data/app/models/spree/permission_sets/order_management.rb +50 -0
- data/app/models/spree/permission_sets/product_display.rb +43 -0
- data/app/models/spree/permission_sets/product_management.rb +47 -0
- data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
- data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
- data/app/models/spree/permission_sets/stock_display.rb +26 -0
- data/app/models/spree/permission_sets/stock_management.rb +26 -0
- data/app/models/spree/permission_sets/super_user.rb +26 -0
- data/app/models/spree/permission_sets/user_display.rb +27 -0
- data/app/models/spree/permission_sets/user_management.rb +44 -0
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +3 -3
- data/app/models/spree/product/scopes.rb +23 -10
- data/app/models/spree/product.rb +30 -23
- data/app/models/spree/product_property.rb +1 -1
- data/app/models/spree/property.rb +1 -1
- data/app/models/spree/refund.rb +13 -3
- data/app/models/spree/refund_reason.rb +6 -1
- data/app/models/spree/reimbursement.rb +6 -6
- data/app/models/spree/reimbursement_performer.rb +3 -3
- data/app/models/spree/reimbursement_tax_calculator.rb +3 -3
- data/app/models/spree/reimbursement_type/credit.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +6 -1
- data/app/models/spree/return_authorization.rb +3 -1
- data/app/models/spree/return_item.rb +13 -15
- data/app/models/spree/return_reason.rb +6 -1
- data/app/models/spree/role.rb +3 -1
- data/app/models/spree/role_permission.rb +8 -0
- data/app/models/spree/shipment.rb +12 -10
- data/app/models/spree/shipping_category.rb +2 -0
- data/app/models/spree/shipping_rate.rb +2 -3
- data/app/models/spree/shipping_rate_tax.rb +1 -1
- data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +10 -13
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/stock/allocator/on_hand_first.rb +2 -2
- data/app/models/spree/stock/availability.rb +11 -3
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/package.rb +2 -2
- data/app/models/spree/stock/quantifier.rb +12 -8
- data/app/models/spree/stock/simple_coordinator.rb +38 -28
- data/app/models/spree/stock/splitter/shipping_category.rb +1 -1
- data/app/models/spree/stock_item.rb +2 -1
- data/app/models/spree/stock_location.rb +7 -7
- data/app/models/spree/stock_movement.rb +2 -2
- data/app/models/spree/store.rb +3 -1
- data/app/models/spree/store_credit.rb +31 -16
- data/app/models/spree/store_credit_event.rb +4 -3
- data/app/models/spree/store_credit_prioritizer.rb +17 -0
- data/app/models/spree/store_credit_reason.rb +6 -1
- data/app/models/spree/store_selector/by_server_name.rb +1 -1
- data/app/models/spree/tax/item_tax.rb +3 -2
- data/app/models/spree/tax/order_tax.rb +3 -1
- data/app/models/spree/tax/tax_helpers.rb +14 -3
- data/app/models/spree/tax/tax_location.rb +4 -7
- data/app/models/spree/tax_calculator/default.rb +32 -1
- data/app/models/spree/tax_calculator/shipping_rate.rb +2 -2
- data/app/models/spree/tax_category.rb +3 -1
- data/app/models/spree/tax_rate.rb +14 -1
- 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 +25 -3
- data/app/models/spree/taxon_brand_selector.rb +22 -0
- data/app/models/spree/taxonomy.rb +4 -3
- data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
- data/app/models/spree/unit_cancel.rb +1 -2
- data/app/models/spree/user_address.rb +9 -3
- data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +1 -1
- data/app/models/spree/variant/price_selector.rb +25 -8
- data/app/models/spree/variant/scopes.rb +4 -0
- data/app/models/spree/variant/vat_price_generator.rb +1 -1
- data/app/models/spree/variant.rb +64 -37
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +4 -4
- data/app/models/spree/wallet.rb +2 -2
- data/app/models/spree/zone.rb +1 -1
- data/app/subscribers/spree/order_mailer_subscriber.rb +35 -0
- data/app/views/layouts/spree/base_mailer.html.erb +2 -2
- data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
- data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
- data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
- data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
- data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +0 -1
- data/config/i18n-tasks.yml +134 -0
- data/config/locales/en.yml +439 -338
- data/db/default/spree/permission_sets.rb +10 -0
- data/db/default/spree/return_reasons.rb +3 -1
- data/db/default/spree/states.rb +2 -2
- data/db/migrate/20160101010000_solidus_one_four.rb +0 -127
- data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +2 -2
- data/db/migrate/20201127212108_add_type_before_removal_to_spree_payment_methods.rb +7 -0
- data/db/migrate/20210312061050_change_column_null_on_prices.rb +7 -0
- data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +16 -0
- data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
- data/db/migrate/20220805202442_add_level_to_spree_tax_rates.rb +5 -0
- data/db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb +5 -0
- data/db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb +5 -0
- data/db/migrate/20230425103509_remove_taxon_position.rb +5 -0
- data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +11 -0
- data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
- data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
- data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
- data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
- data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
- data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
- data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
- data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
- data/db/seeds.rb +5 -1
- data/lib/generators/solidus/install/app_templates/authentication/custom.rb +16 -0
- data/lib/generators/solidus/install/app_templates/authentication/devise.rb +16 -0
- data/lib/generators/solidus/install/app_templates/authentication/existing.rb +10 -0
- data/lib/generators/solidus/install/app_templates/authentication/none.rb +1 -0
- data/lib/generators/solidus/install/app_templates/frontend/none.rb +1 -0
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -0
- data/lib/generators/solidus/install/app_templates/payment_method/braintree.rb +5 -0
- data/lib/generators/solidus/install/app_templates/payment_method/none.rb +1 -0
- data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +5 -0
- data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +5 -0
- data/lib/generators/solidus/install/install_generator.rb +210 -156
- data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +27 -33
- data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/backend/all.js +2 -2
- data/lib/generators/solidus/update/templates/config/initializers/new_solidus_defaults.rb.tt +30 -0
- data/lib/generators/solidus/update/update_generator.rb +124 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -4
- data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +2 -6
- data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -3
- data/lib/generators/spree/dummy/dummy_generator.rb +12 -9
- data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -2
- data/lib/generators/spree/dummy/templates/rails/database.yml +48 -63
- data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +7 -2
- data/lib/spree/app_configuration.rb +220 -71
- data/lib/spree/bus.rb +11 -0
- data/lib/spree/core/class_constantizer.rb +2 -2
- data/lib/spree/core/controller_helpers/auth.rb +5 -69
- data/lib/spree/core/controller_helpers/common.rb +5 -80
- data/lib/spree/core/controller_helpers/order.rb +5 -86
- data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -165
- data/lib/spree/core/controller_helpers/pricing.rb +5 -17
- data/lib/spree/core/controller_helpers/search.rb +5 -14
- data/lib/spree/core/controller_helpers/store.rb +5 -17
- data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
- data/lib/spree/core/engine.rb +49 -16
- data/lib/spree/core/environment/calculators.rb +35 -3
- data/lib/spree/core/environment/promotions.rb +25 -4
- data/lib/spree/core/environment_extension.rb +16 -2
- data/lib/spree/core/importer/order.rb +6 -6
- data/lib/spree/core/importer/product.rb +3 -3
- data/lib/spree/core/nested_class_set.rb +28 -0
- data/lib/spree/core/null_promotion_configuration.rb +84 -0
- data/lib/spree/core/product_duplicator.rb +1 -1
- data/lib/spree/core/product_filters.rb +2 -2
- data/lib/spree/core/search/base.rb +18 -9
- data/lib/spree/core/search/variant.rb +2 -2
- data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
- data/lib/spree/core/state_machines/order.rb +5 -247
- data/lib/spree/core/state_machines/payment.rb +5 -59
- data/lib/spree/core/state_machines/reimbursement.rb +5 -31
- data/lib/spree/core/state_machines/return_authorization.rb +5 -30
- data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
- data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
- data/lib/spree/core/state_machines/shipment.rb +5 -56
- data/lib/spree/core/state_machines.rb +48 -81
- data/lib/spree/core/stock_configuration.rb +18 -0
- data/lib/spree/core/validators/email.rb +2 -4
- data/lib/spree/core/version.rb +5 -1
- data/lib/spree/core/versioned_value.rb +75 -0
- data/lib/spree/core.rb +40 -16
- data/lib/spree/deprecated_instance_variable_proxy.rb +57 -0
- data/lib/spree/deprecation.rb +3 -51
- data/lib/spree/deprecator.rb +9 -0
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +1 -1
- data/lib/spree/migration_helpers.rb +3 -3
- data/lib/spree/migrations.rb +13 -11
- data/lib/spree/money.rb +5 -118
- data/lib/spree/permission_sets/base.rb +5 -30
- data/lib/spree/permission_sets/configuration_display.rb +5 -23
- data/lib/spree/permission_sets/configuration_management.rb +5 -23
- data/lib/spree/permission_sets/dashboard_display.rb +5 -9
- data/lib/spree/permission_sets/default_customer.rb +5 -35
- data/lib/spree/permission_sets/order_display.rb +5 -19
- data/lib/spree/permission_sets/order_management.rb +5 -20
- data/lib/spree/permission_sets/product_display.rb +5 -17
- data/lib/spree/permission_sets/product_management.rb +5 -19
- data/lib/spree/permission_sets/restricted_stock_display.rb +5 -16
- data/lib/spree/permission_sets/restricted_stock_management.rb +5 -16
- data/lib/spree/permission_sets/stock_display.rb +5 -10
- data/lib/spree/permission_sets/stock_management.rb +5 -10
- data/lib/spree/permission_sets/super_user.rb +5 -9
- data/lib/spree/permission_sets/user_display.rb +5 -11
- data/lib/spree/permission_sets/user_management.rb +5 -23
- data/lib/spree/permission_sets.rb +5 -18
- data/lib/spree/permitted_attributes.rb +35 -14
- data/lib/spree/preferences/configuration.rb +88 -0
- data/lib/spree/preferences/persistable.rb +7 -1
- data/lib/spree/preferences/preferable.rb +13 -0
- data/lib/spree/preferences/preferable_class_methods.rb +12 -4
- data/lib/spree/preferences/preference_differentiator.rb +29 -0
- data/lib/spree/preferences/static_model_preferences.rb +25 -10
- data/lib/spree/preferences/store.rb +2 -2
- data/lib/spree/testing_support/blacklist_urls.rb +1 -1
- data/lib/spree/testing_support/bus_helpers.rb +101 -0
- data/lib/spree/testing_support/capybara_ext.rb +11 -1
- data/lib/spree/testing_support/common_rake.rb +76 -23
- data/lib/spree/testing_support/dummy_ability.rb +7 -0
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css +1 -0
- data/lib/spree/testing_support/dummy_app/database.yml +39 -28
- data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +3 -10
- data/lib/spree/testing_support/dummy_app.rb +71 -42
- data/lib/spree/testing_support/extension_rake.rb +2 -2
- data/lib/spree/testing_support/factories/address_factory.rb +9 -13
- data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -13
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/calculator_factory.rb +4 -10
- data/lib/spree/testing_support/factories/carton_factory.rb +2 -10
- data/lib/spree/testing_support/factories/country_factory.rb +1 -7
- data/lib/spree/testing_support/factories/credit_card_factory.rb +0 -5
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -11
- data/lib/spree/testing_support/factories/image_factory.rb +0 -5
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +4 -14
- data/lib/spree/testing_support/factories/line_item_factory.rb +0 -8
- data/lib/spree/testing_support/factories/option_type_factory.rb +0 -8
- data/lib/spree/testing_support/factories/option_value_factory.rb +0 -5
- data/lib/spree/testing_support/factories/order_factory.rb +19 -38
- data/lib/spree/testing_support/factories/payment_factory.rb +0 -10
- data/lib/spree/testing_support/factories/payment_method_factory.rb +0 -5
- data/lib/spree/testing_support/factories/price_factory.rb +0 -7
- data/lib/spree/testing_support/factories/product_factory.rb +5 -13
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +0 -8
- data/lib/spree/testing_support/factories/product_property_factory.rb +0 -8
- data/lib/spree/testing_support/factories/property_factory.rb +0 -5
- data/lib/spree/testing_support/factories/refund_factory.rb +0 -8
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +0 -7
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +0 -5
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +0 -9
- data/lib/spree/testing_support/factories/return_item_factory.rb +0 -9
- data/lib/spree/testing_support/factories/return_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/role_factory.rb +0 -5
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -11
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +0 -5
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +0 -9
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +0 -8
- data/lib/spree/testing_support/factories/state_factory.rb +8 -10
- data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -9
- data/lib/spree/testing_support/factories/stock_location_factory.rb +0 -9
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +0 -7
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -9
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +0 -8
- data/lib/spree/testing_support/factories/store_credit_factory.rb +4 -13
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_factory.rb +0 -5
- data/lib/spree/testing_support/factories/tax_category_factory.rb +0 -8
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +0 -9
- data/lib/spree/testing_support/factories/taxon_factory.rb +5 -10
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +3 -6
- data/lib/spree/testing_support/factories/user_factory.rb +6 -9
- data/lib/spree/testing_support/factories/variant_factory.rb +0 -10
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +0 -8
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +0 -9
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +0 -8
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -9
- data/lib/spree/testing_support/factory_bot.rb +6 -29
- data/lib/spree/testing_support/flaky.rb +22 -0
- data/lib/spree/testing_support/order_walkthrough.rb +7 -6
- data/lib/spree/testing_support/sequences.rb +0 -5
- data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
- data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
- data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
- data/lib/spree/testing_support/silence_deprecations.rb +9 -0
- data/lib/spree/user_class_handle.rb +2 -2
- data/lib/tasks/colorado_delivery_fee.rake +28 -0
- data/lib/tasks/payment_method.rake +29 -0
- data/lib/tasks/solidus/delete_prices_with_nil_amount.rake +8 -0
- data/solidus_core.gemspec +18 -8
- metadata +233 -117
- data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
- data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
- data/app/models/spree/calculator/distributed_amount.rb +0 -33
- data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
- data/app/models/spree/calculator/flexi_rate.rb +0 -22
- data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
- data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
- data/app/models/spree/calculator/tiered_percent.rb +0 -62
- data/app/models/spree/line_item_action.rb +0 -8
- data/app/models/spree/order_promotion.rb +0 -27
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -77
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -99
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
- data/app/models/spree/promotion/actions/free_shipping.rb +0 -58
- data/app/models/spree/promotion/rules/first_order.rb +0 -38
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
- data/app/models/spree/promotion/rules/item_total.rb +0 -53
- data/app/models/spree/promotion/rules/nth_order.rb +0 -45
- data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
- data/app/models/spree/promotion/rules/option_value.rb +0 -50
- data/app/models/spree/promotion/rules/product.rb +0 -74
- data/app/models/spree/promotion/rules/store.rb +0 -22
- data/app/models/spree/promotion/rules/taxon.rb +0 -87
- data/app/models/spree/promotion/rules/user.rb +0 -30
- data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
- data/app/models/spree/promotion/rules/user_role.rb +0 -45
- data/app/models/spree/promotion.rb +0 -284
- data/app/models/spree/promotion_action.rb +0 -43
- data/app/models/spree/promotion_category.rb +0 -8
- data/app/models/spree/promotion_chooser.rb +0 -34
- data/app/models/spree/promotion_code/batch_builder.rb +0 -64
- data/app/models/spree/promotion_code.rb +0 -50
- data/app/models/spree/promotion_code_batch.rb +0 -27
- data/app/models/spree/promotion_handler/cart.rb +0 -55
- data/app/models/spree/promotion_handler/coupon.rb +0 -123
- data/app/models/spree/promotion_handler/page.rb +0 -26
- data/app/models/spree/promotion_handler/shipping.rb +0 -61
- data/app/models/spree/promotion_rule.rb +0 -55
- data/app/models/spree/promotion_rule_role.rb +0 -8
- data/app/models/spree/promotion_rule_store.rb +0 -10
- data/app/models/spree/promotion_rule_taxon.rb +0 -8
- data/app/models/spree/promotion_rule_user.rb +0 -10
- data/app/models/spree/tax/shipping_rate_taxer.rb +0 -24
- data/app/subscribers/spree/mailer_subscriber.rb +0 -25
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
- data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
- data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
- data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
- data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -10
- data/lib/generators/solidus/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -9
- data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
- data/lib/spree/event/adapters/active_support_notifications.rb +0 -67
- data/lib/spree/event/configuration.rb +0 -25
- data/lib/spree/event/subscriber.rb +0 -86
- data/lib/spree/event/subscriber_registry.rb +0 -94
- data/lib/spree/event.rb +0 -119
- data/lib/spree/permission_sets/promotion_display.rb +0 -15
- data/lib/spree/permission_sets/promotion_management.rb +0 -15
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +0 -10
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/spree/frontend/all.css +0 -9
- data/lib/spree/testing_support/dummy_app/views/layouts/application.html.erb +0 -1
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -16
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -12
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -16
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -92
- data/lib/spree/testing_support/factories.rb +0 -11
- data/lib/spree/testing_support.rb +0 -31
- data/lib/tasks/upgrade.rake +0 -15
@@ -1,5 +1,5 @@
|
|
1
1
|
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
-
// Add new JavaScript
|
2
|
+
// Add new JavaScript code in separate files in this directory and they'll automatically
|
3
3
|
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
4
|
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
5
|
// the compiled file.
|
@@ -0,0 +1 @@
|
|
1
|
+
/* Placeholder for compiled tailwind.css file */
|
@@ -1,34 +1,45 @@
|
|
1
1
|
<%
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
when '
|
2
|
+
adapter =
|
3
|
+
case ENV['DB']
|
4
|
+
when 'mysql2', 'mysql' then 'mysql2'
|
5
|
+
when 'postgresql', 'postgres' then 'postgresql'
|
6
|
+
when 'sqlite3', 'sqlite', '', nil then 'sqlite3'
|
7
|
+
else raise "Invalid DB specified " + ENV['DB'].inspect
|
8
|
+
end
|
9
|
+
|
10
|
+
db_host =
|
11
|
+
case adapter
|
12
|
+
when 'mysql2' then ENV['DB_MYSQL_HOST'] || ENV['DB_HOST']
|
13
|
+
when 'postgresql' then ENV['DB_POSTGRES_HOST'] || ENV['DB_HOST']
|
14
|
+
else ENV['DB_HOST']
|
15
|
+
end
|
16
|
+
|
17
|
+
db_prefix = ENV['LIB_NAME'].presence || "solidus"
|
18
|
+
db_username = ENV['DB_USERNAME']
|
19
|
+
db_password = ENV['DB_PASSWORD'] %>
|
20
|
+
|
21
|
+
default: &default
|
22
|
+
adapter: <%= adapter %>
|
23
|
+
<% unless db_username.blank? %>username: <%= db_username %><% end %>
|
24
|
+
<% unless db_password.blank? %>password: <%= db_password %><% end %>
|
25
|
+
<% unless db_host.blank? %>host: <%= db_host %><% end %>
|
26
|
+
<% if adapter == 'mysql2' %>encoding: utf8<% end %>
|
27
|
+
<% if adapter == 'postgresql' %>min_messages: warning<% end %>
|
28
|
+
|
29
|
+
<% if adapter == 'mysql2' %>
|
6
30
|
test:
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<% end %>
|
12
|
-
database: <%= database_prefix %>_test
|
13
|
-
encoding: utf8
|
14
|
-
<% unless ENV['DB_HOST'].blank? %>
|
15
|
-
host: <%= ENV['DB_HOST'] %>
|
16
|
-
<% end %>
|
17
|
-
<% when 'postgres', 'postgresql' %>
|
18
|
-
<% db_host = ENV['DB_HOST'] %>
|
31
|
+
<<: *default
|
32
|
+
database: <%= db_prefix %>_test
|
33
|
+
|
34
|
+
<% elsif adapter == 'postgresql' %>
|
19
35
|
test:
|
20
|
-
|
21
|
-
database: <%=
|
22
|
-
|
23
|
-
|
24
|
-
<% unless db_host.blank? %>
|
25
|
-
host: <%= db_host %>
|
26
|
-
<% end %>
|
27
|
-
<% when 'sqlite', '', nil %>
|
36
|
+
<<: *default
|
37
|
+
database: <%= db_prefix %>_test
|
38
|
+
|
39
|
+
<% elsif adapter == 'sqlite3' %>
|
28
40
|
test:
|
29
|
-
|
30
|
-
database: db/<%=
|
41
|
+
<<: *default
|
42
|
+
database: db/<%= db_prefix %>_test.sqlite3
|
31
43
|
timeout: 10000
|
32
|
-
|
33
|
-
<% raise "Invalid DB specified: #{ENV['DB']}" %>
|
44
|
+
|
34
45
|
<% end %>
|
@@ -4,21 +4,6 @@ module DummyApp
|
|
4
4
|
module Migrations
|
5
5
|
extend self
|
6
6
|
|
7
|
-
# Ensure database exists
|
8
|
-
def database_exists?
|
9
|
-
ActiveRecord::Base.connection
|
10
|
-
rescue ActiveRecord::NoDatabaseError
|
11
|
-
false
|
12
|
-
else
|
13
|
-
true
|
14
|
-
end
|
15
|
-
|
16
|
-
def needs_migration?
|
17
|
-
return true if !database_exists?
|
18
|
-
|
19
|
-
ActiveRecord::Base.connection.migration_context.needs_migration?
|
20
|
-
end
|
21
|
-
|
22
7
|
def auto_migrate
|
23
8
|
if needs_migration?
|
24
9
|
puts "Configuration changed. Re-running migrations"
|
@@ -35,6 +20,14 @@ module DummyApp
|
|
35
20
|
|
36
21
|
private
|
37
22
|
|
23
|
+
def needs_migration?
|
24
|
+
ActiveRecord::Migration.check_all_pending!
|
25
|
+
rescue ActiveRecord::PendingMigrationError, ActiveRecord::NoDatabaseError
|
26
|
+
true
|
27
|
+
else
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
38
31
|
def sh(cmd)
|
39
32
|
puts cmd
|
40
33
|
system cmd
|
@@ -10,8 +10,8 @@ module DummyApp
|
|
10
10
|
require lib_name
|
11
11
|
require 'spree/testing_support/dummy_app'
|
12
12
|
DummyApp.setup(
|
13
|
-
gem_root
|
14
|
-
lib_name
|
13
|
+
gem_root:,
|
14
|
+
lib_name:,
|
15
15
|
auto_migrate: false
|
16
16
|
)
|
17
17
|
end
|
@@ -38,14 +38,7 @@ namespace :db do
|
|
38
38
|
# railties:install:migrations and then db:migrate.
|
39
39
|
# Migrations should be run one directory at a time
|
40
40
|
ActiveRecord::Migrator.migrations_paths.each do |path|
|
41
|
-
|
42
|
-
ActiveRecord::MigrationContext.new(
|
43
|
-
[path],
|
44
|
-
ActiveRecord::SchemaMigration
|
45
|
-
).migrate
|
46
|
-
else
|
47
|
-
ActiveRecord::MigrationContext.new([path]).migrate
|
48
|
-
end
|
41
|
+
ActiveRecord::MigrationContext.new([path]).migrate
|
49
42
|
end
|
50
43
|
|
51
44
|
ActiveRecord::Base.clear_cache!
|
@@ -13,8 +13,6 @@ Rails.env = 'test'
|
|
13
13
|
|
14
14
|
require 'solidus_core'
|
15
15
|
|
16
|
-
RAILS_6_OR_ABOVE = Rails.gem_version >= Gem::Version.new('6.0')
|
17
|
-
|
18
16
|
# @private
|
19
17
|
class ApplicationController < ActionController::Base
|
20
18
|
protect_from_forgery with: :exception
|
@@ -22,6 +20,7 @@ end
|
|
22
20
|
|
23
21
|
# @private
|
24
22
|
class ApplicationRecord < ActiveRecord::Base
|
23
|
+
self.abstract_class = true
|
25
24
|
end
|
26
25
|
|
27
26
|
# @private
|
@@ -36,9 +35,18 @@ end
|
|
36
35
|
module DummyApp
|
37
36
|
def self.setup(gem_root:, lib_name:, auto_migrate: true)
|
38
37
|
ENV["LIB_NAME"] = lib_name
|
39
|
-
|
38
|
+
root = Pathname(gem_root).join('spec/dummy')
|
39
|
+
root.join("app/assets/config").mkpath
|
40
|
+
root.join("app/assets/config/manifest.js").write("// Intentionally empty\n")
|
41
|
+
|
42
|
+
DummyApp::Application.config.root = root
|
43
|
+
DummyApp::Application.initialize! unless DummyApp::Application.initialized?
|
40
44
|
|
41
|
-
|
45
|
+
# Raise on deprecation warnings.
|
46
|
+
# NOTE: This needs to happen after the application is initialized.
|
47
|
+
if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
|
48
|
+
Spree.deprecator.behavior = :raise
|
49
|
+
end
|
42
50
|
|
43
51
|
if auto_migrate
|
44
52
|
DummyApp::Migrations.auto_migrate
|
@@ -46,38 +54,68 @@ module DummyApp
|
|
46
54
|
end
|
47
55
|
|
48
56
|
class Application < ::Rails::Application
|
49
|
-
config.
|
50
|
-
|
51
|
-
|
52
|
-
config.serve_static_assets = true
|
53
|
-
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
54
|
-
config.whiny_nils = true
|
55
|
-
config.consider_all_requests_local = true
|
57
|
+
config.load_defaults("#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}")
|
58
|
+
|
59
|
+
# Make the test environment more production-like:
|
56
60
|
config.action_controller.allow_forgery_protection = false
|
57
61
|
config.action_controller.default_protect_from_forgery = false
|
62
|
+
config.action_mailer.perform_caching = false
|
63
|
+
config.i18n.fallbacks = true
|
64
|
+
|
65
|
+
# In the test environment, we use the `caching: true` RSpec metadata to
|
66
|
+
# enable caching on select specs. See
|
67
|
+
# core/lib/spree/testing_support/caching.rb. See also
|
68
|
+
# https://github.com/solidusio/solidus/issues/4110
|
58
69
|
config.action_controller.perform_caching = false
|
59
|
-
|
60
|
-
|
70
|
+
|
71
|
+
# It needs to be explicitly set from Rails 7
|
72
|
+
# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-6-1-to-rails-7-0-spring
|
73
|
+
config.cache_classes = true
|
74
|
+
|
75
|
+
# Make debugging easier:
|
76
|
+
if Rails.gem_version >= Gem::Version.new('7.1')
|
77
|
+
config.action_controller.raise_on_missing_callback_actions = true
|
78
|
+
config.action_dispatch.show_exceptions = :none
|
79
|
+
else
|
80
|
+
config.action_dispatch.show_exceptions = false
|
81
|
+
end
|
82
|
+
config.consider_all_requests_local = true
|
83
|
+
config.active_support.deprecation = ENV['RAILS_DEPRECATIONS_BEHAVIOR'].presence&.to_sym || :stderr
|
84
|
+
config.log_level = :debug
|
85
|
+
|
86
|
+
# Improve test suite performance:
|
87
|
+
config.eager_load = false
|
88
|
+
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
89
|
+
config.cache_store = :memory_store
|
90
|
+
|
91
|
+
# We don't use a web server, so we let Rails serve assets.
|
92
|
+
config.public_file_server.enabled = true
|
93
|
+
|
94
|
+
# We don't want to send email in the test environment.
|
61
95
|
config.action_mailer.delivery_method = :test
|
62
|
-
|
96
|
+
|
97
|
+
# No need to use credentials file in a test environment.
|
63
98
|
config.secret_key_base = 'SECRET_TOKEN'
|
64
99
|
|
65
|
-
|
66
|
-
|
67
|
-
|
100
|
+
# Set the preview path within the dummy app:
|
101
|
+
if ActionMailer::Base.respond_to? :preview_paths # Rails 7.1+
|
102
|
+
config.action_mailer.preview_paths << File.expand_path('dummy_app/mailer_previews', __dir__)
|
103
|
+
else
|
104
|
+
config.action_mailer.preview_path = File.expand_path('dummy_app/mailer_previews', __dir__)
|
105
|
+
end
|
68
106
|
|
69
|
-
config.
|
107
|
+
config.active_record.dump_schema_after_migration = false
|
70
108
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
}
|
109
|
+
# Configure active storage to use storage within tmp folder
|
110
|
+
initializer 'solidus.active_storage' do
|
111
|
+
config.active_storage.service_configurations = {
|
112
|
+
test: {
|
113
|
+
service: 'Disk',
|
114
|
+
root: Rails.root.join('tmp', 'storage')
|
78
115
|
}
|
79
|
-
|
80
|
-
|
116
|
+
}
|
117
|
+
config.active_storage.service = :test
|
118
|
+
config.active_storage.variant_processor = ENV.fetch('ACTIVE_STORAGE_VARIANT_PROCESSOR', :vips).to_sym
|
81
119
|
end
|
82
120
|
|
83
121
|
# Avoid issues if an old spec/dummy still exists
|
@@ -93,16 +131,13 @@ module DummyApp
|
|
93
131
|
end
|
94
132
|
config.paths['db/migrate'] = migration_dirs
|
95
133
|
ActiveRecord::Migrator.migrations_paths = migration_dirs
|
134
|
+
ActiveRecord::Migration.verbose = false
|
96
135
|
|
97
|
-
config.
|
98
|
-
|
99
|
-
|
100
|
-
config.assets.paths << File.expand_path('dummy_app/assets/javascripts', __dir__)
|
101
|
-
config.assets.paths << File.expand_path('dummy_app/assets/stylesheets', __dir__)
|
102
|
-
end
|
136
|
+
config.assets.paths << File.expand_path('dummy_app/assets/javascripts', __dir__)
|
137
|
+
config.assets.paths << File.expand_path('dummy_app/assets/stylesheets', __dir__)
|
138
|
+
config.assets.css_compressor = nil
|
103
139
|
|
104
140
|
config.paths["config/database"] = File.expand_path('dummy_app/database.yml', __dir__)
|
105
|
-
config.paths['app/views'] = File.expand_path('dummy_app/views', __dir__)
|
106
141
|
config.paths['config/routes.rb'] = File.expand_path('dummy_app/routes.rb', __dir__)
|
107
142
|
|
108
143
|
ActionMailer::Base.default from: "store@example.com"
|
@@ -116,16 +151,10 @@ ActiveSupport.on_load(:action_controller) do
|
|
116
151
|
end
|
117
152
|
|
118
153
|
Spree.user_class = 'Spree::LegacyUser'
|
154
|
+
Spree.load_defaults(Spree.solidus_version)
|
119
155
|
Spree.config do |config|
|
120
|
-
|
121
|
-
|
122
|
-
if ENV['DISABLE_ACTIVE_STORAGE']
|
156
|
+
if (ENV['DISABLE_ACTIVE_STORAGE'] == 'true')
|
123
157
|
config.image_attachment_module = 'Spree::Image::PaperclipAttachment'
|
124
158
|
config.taxon_attachment_module = 'Spree::Taxon::PaperclipAttachment'
|
125
159
|
end
|
126
160
|
end
|
127
|
-
|
128
|
-
# Raise on deprecation warnings
|
129
|
-
if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
|
130
|
-
Spree::Deprecation.behavior = :raise
|
131
|
-
end
|
@@ -4,8 +4,8 @@ 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
|
-
task :test_app, [:user_class] do |_t,
|
7
|
+
task :test_app, [:user_class] do |_t, args|
|
8
8
|
Spree::DummyGeneratorHelper.inject_extension_requirements = true
|
9
|
-
Rake::Task['common:test_app'].invoke
|
9
|
+
Rake::Task['common:test_app'].invoke(args[:user_class])
|
10
10
|
end
|
11
11
|
end
|
@@ -1,12 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/state_factory'
|
8
|
-
require 'spree/testing_support/factories/country_factory'
|
9
|
-
end
|
10
3
|
FactoryBot.define do
|
11
4
|
factory :address, class: 'Spree::Address' do
|
12
5
|
transient do
|
@@ -24,16 +17,19 @@ FactoryBot.define do
|
|
24
17
|
phone { '555-555-0199' }
|
25
18
|
alternative_phone { '555-555-0199' }
|
26
19
|
|
27
|
-
state do |address|
|
28
|
-
Spree::State.joins(:country).where('spree_countries.iso = (?)', country_iso_code).find_by(abbr: state_code) ||
|
29
|
-
address.association(:state, country_iso: country_iso_code, state_code: state_code)
|
30
|
-
end
|
31
|
-
|
32
20
|
country do |address|
|
33
21
|
if address.state
|
34
22
|
address.state.country
|
35
23
|
else
|
36
|
-
|
24
|
+
Spree::Country.find_by(iso: country_iso_code) ||
|
25
|
+
address.association(:country, strategy: :create, iso: country_iso_code)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
after(:build) do |address, evaluator|
|
30
|
+
if address&.country&.states_required? && address.state.nil? && address.state_name.nil?
|
31
|
+
address.state = address.country.states.find_by(abbr: evaluator.state_code) ||
|
32
|
+
create(:state, country_iso: address.country.iso, state_code: evaluator.state_code)
|
37
33
|
end
|
38
34
|
end
|
39
35
|
end
|
@@ -1,16 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/line_item_factory'
|
8
|
-
require 'spree/testing_support/factories/order_factory'
|
9
|
-
require 'spree/testing_support/factories/tax_category_factory'
|
10
|
-
require 'spree/testing_support/factories/tax_rate_factory'
|
11
|
-
require 'spree/testing_support/factories/zone_factory'
|
12
|
-
end
|
13
|
-
|
14
3
|
FactoryBot.define do
|
15
4
|
factory :adjustment, class: 'Spree::Adjustment' do
|
16
5
|
order
|
@@ -18,7 +7,6 @@ FactoryBot.define do
|
|
18
7
|
amount { 100.0 }
|
19
8
|
label { 'Shipping' }
|
20
9
|
association(:source, factory: :tax_rate)
|
21
|
-
eligible { true }
|
22
10
|
|
23
11
|
after(:build) do |adjustment|
|
24
12
|
adjustments = adjustment.adjustable.adjustments
|
@@ -42,7 +30,7 @@ FactoryBot.define do
|
|
42
30
|
adjustment.source.tax_categories = []
|
43
31
|
end
|
44
32
|
adjustment.source.save
|
45
|
-
adjustment.
|
33
|
+
adjustment.update!(amount: adjustment.source.compute_amount(adjustment.adjustable))
|
46
34
|
end
|
47
35
|
end
|
48
36
|
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
FactoryBot.define do
|
9
4
|
factory :adjustment_reason, class: 'Spree::AdjustmentReason' do
|
10
5
|
sequence(:name) { |n| "Refund for return ##{n}" }
|
@@ -1,12 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
FactoryBot.define do
|
9
|
-
factory :
|
4
|
+
factory :flat_rate_calculator, aliases: [:calculator], class: 'Spree::Calculator::FlatRate' do
|
10
5
|
preferred_amount { 10.0 }
|
11
6
|
end
|
12
7
|
|
@@ -17,6 +12,9 @@ FactoryBot.define do
|
|
17
12
|
factory :default_tax_calculator, class: 'Spree::Calculator::DefaultTax' do
|
18
13
|
end
|
19
14
|
|
15
|
+
factory :flat_fee_calculator, class: 'Spree::Calculator::FlatFee' do
|
16
|
+
end
|
17
|
+
|
20
18
|
factory :shipping_calculator, class: 'Spree::Calculator::Shipping::FlatRate' do
|
21
19
|
preferred_amount { 10.0 }
|
22
20
|
end
|
@@ -24,8 +22,4 @@ FactoryBot.define do
|
|
24
22
|
factory :shipping_no_amount_calculator, class: 'Spree::Calculator::Shipping::FlatRate' do
|
25
23
|
preferred_amount { 0 }
|
26
24
|
end
|
27
|
-
|
28
|
-
factory :percent_on_item_calculator, class: 'Spree::Calculator::PercentOnLineItem' do
|
29
|
-
preferred_percent { 10 }
|
30
|
-
end
|
31
25
|
end
|
@@ -1,13 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/shipment_factory'
|
8
|
-
require 'spree/testing_support/factories/inventory_unit_factory'
|
9
|
-
end
|
10
|
-
|
11
3
|
FactoryBot.define do
|
12
4
|
factory :carton, class: 'Spree::Carton' do
|
13
5
|
address
|
@@ -21,8 +13,8 @@ FactoryBot.define do
|
|
21
13
|
# ensure the shipment uses the same stock location as the carton
|
22
14
|
shipment: build(
|
23
15
|
:shipment,
|
24
|
-
stock_location
|
25
|
-
shipping_method:
|
16
|
+
stock_location:,
|
17
|
+
shipping_method:
|
26
18
|
)
|
27
19
|
)
|
28
20
|
]
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
require 'carmen'
|
9
4
|
|
10
5
|
FactoryBot.define do
|
@@ -20,7 +15,6 @@ FactoryBot.define do
|
|
20
15
|
iso3 { carmen_country.alpha_3_code }
|
21
16
|
numcode { carmen_country.numeric_code }
|
22
17
|
|
23
|
-
|
24
|
-
# states_required { carmen_country.subregions? }
|
18
|
+
states_required { carmen_country.subregions? }
|
25
19
|
end
|
26
20
|
end
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
FactoryBot.define do
|
9
4
|
factory :credit_card, class: 'Spree::CreditCard' do
|
10
5
|
verification_value { 123 }
|
@@ -1,14 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/stock_location_factory'
|
8
|
-
require 'spree/testing_support/factories/order_factory'
|
9
|
-
require 'spree/testing_support/factories/return_item_factory'
|
10
|
-
end
|
11
|
-
|
12
3
|
FactoryBot.define do
|
13
4
|
factory :customer_return, class: 'Spree::CustomerReturn' do
|
14
5
|
association(:stock_location, factory: :stock_location)
|
@@ -16,13 +7,13 @@ FactoryBot.define do
|
|
16
7
|
transient do
|
17
8
|
line_items_count { 1 }
|
18
9
|
return_items_count { line_items_count }
|
19
|
-
shipped_order { create :shipped_order, line_items_count:
|
10
|
+
shipped_order { create :shipped_order, line_items_count: }
|
20
11
|
return_authorization { create :return_authorization, order: shipped_order }
|
21
12
|
end
|
22
13
|
|
23
14
|
before(:create) do |customer_return, evaluator|
|
24
15
|
evaluator.shipped_order.inventory_units.take(evaluator.return_items_count).each do |inventory_unit|
|
25
|
-
customer_return.return_items << build(:return_item, inventory_unit
|
16
|
+
customer_return.return_items << build(:return_item, inventory_unit:, return_authorization: evaluator.return_authorization)
|
26
17
|
end
|
27
18
|
end
|
28
19
|
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
FactoryBot.define do
|
9
4
|
factory :image, class: 'Spree::Image' do
|
10
5
|
attachment { Spree::Core::Engine.root.join('lib', 'spree', 'testing_support', 'fixtures', 'blank.jpg').open }
|
@@ -1,15 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/line_item_factory'
|
8
|
-
require 'spree/testing_support/factories/variant_factory'
|
9
|
-
require 'spree/testing_support/factories/order_factory'
|
10
|
-
require 'spree/testing_support/factories/shipment_factory'
|
11
|
-
end
|
12
|
-
|
13
3
|
FactoryBot.define do
|
14
4
|
factory :inventory_unit, class: 'Spree::InventoryUnit' do
|
15
5
|
transient do
|
@@ -17,18 +7,18 @@ FactoryBot.define do
|
|
17
7
|
stock_location { nil }
|
18
8
|
end
|
19
9
|
|
20
|
-
variant
|
10
|
+
association :variant, strategy: :create
|
21
11
|
line_item do
|
22
12
|
if order
|
23
|
-
build(:line_item, variant
|
13
|
+
build(:line_item, variant:, order:)
|
24
14
|
else
|
25
|
-
build(:line_item, variant:
|
15
|
+
build(:line_item, variant:)
|
26
16
|
end
|
27
17
|
end
|
28
18
|
state { 'on_hand' }
|
29
19
|
shipment do
|
30
20
|
if stock_location
|
31
|
-
build(:shipment, state: 'pending', order: line_item.order, stock_location:
|
21
|
+
build(:shipment, state: 'pending', order: line_item.order, stock_location:)
|
32
22
|
else
|
33
23
|
build(:shipment, state: 'pending', order: line_item.order)
|
34
24
|
end
|
@@ -1,13 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/order_factory'
|
8
|
-
require 'spree/testing_support/factories/product_factory'
|
9
|
-
end
|
10
|
-
|
11
3
|
FactoryBot.define do
|
12
4
|
factory :line_item, class: 'Spree::LineItem' do
|
13
5
|
quantity { 1 }
|
@@ -1,13 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
|
7
|
-
require 'spree/testing_support/factories/product_factory'
|
8
|
-
require 'spree/testing_support/factories/option_type_factory'
|
9
|
-
end
|
10
|
-
|
11
3
|
FactoryBot.define do
|
12
4
|
factory :option_type, class: 'Spree::OptionType' do
|
13
5
|
sequence(:name) { |n| "foo-size-#{n}" }
|
@@ -1,10 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
Spree::TestingSupport::FactoryBot.when_cherry_picked do
|
5
|
-
Spree::TestingSupport::FactoryBot.deprecate_cherry_picking
|
6
|
-
end
|
7
|
-
|
8
3
|
FactoryBot.define do
|
9
4
|
factory :option_value, class: 'Spree::OptionValue' do
|
10
5
|
sequence(:name) { |n| "Size-#{n}" }
|