From ad8c41e0adf169e4a1ab27ea89d16fb5a89bc5cb Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Sun, 23 Aug 2020 13:55:15 +0100 Subject: [PATCH] Bring shipping_method factory from spree_core and merge with modification --- spec/factories/shipping_method_factory.rb | 48 ++++++++++++++--------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/spec/factories/shipping_method_factory.rb b/spec/factories/shipping_method_factory.rb index c1a4028f1f..4b22c46e7a 100644 --- a/spec/factories/shipping_method_factory.rb +++ b/spec/factories/shipping_method_factory.rb @@ -1,4 +1,34 @@ FactoryBot.define do + factory :base_shipping_method, class: Spree::ShippingMethod do + zones { [] } + name 'UPS Ground' + + distributors { [Enterprise.is_distributor.first || FactoryBot.create(:distributor_enterprise)] } + display_on '' + + before(:create) do |shipping_method, evaluator| + shipping_method.shipping_categories << (Spree::ShippingCategory.first || create(:shipping_category)) + end + + trait :flat_rate do + transient { amount 1 } + calculator { build(:calculator_flat_rate, preferred_amount: amount) } + end + + trait :per_item do + transient { amount 1 } + calculator { build(:calculator_per_item, preferred_amount: amount) } + end + + factory :shipping_method, class: Spree::ShippingMethod do + association(:calculator, factory: :calculator, strategy: :build) + end + + factory :free_shipping_method, class: Spree::ShippingMethod do + association(:calculator, factory: :no_amount_calculator, strategy: :build) + end + end + factory :shipping_method_with, parent: :shipping_method do trait :delivery do require_ship_address { true } @@ -36,21 +66,3 @@ FactoryBot.define do end end end - -FactoryBot.modify do - factory :shipping_method, parent: :base_shipping_method do - distributors { [Enterprise.is_distributor.first || FactoryBot.create(:distributor_enterprise)] } - display_on '' - zones { [] } - - trait :flat_rate do - transient { amount 1 } - calculator { build(:calculator_flat_rate, preferred_amount: amount) } - end - - trait :per_item do - transient { amount 1 } - calculator { build(:calculator_per_item, preferred_amount: amount) } - end - end -end