Sha256: 8be658bbeaa2043e06fe0c566429747fcb30d0e501762bbea803b48f95b7c1ba

Contents?: true

Size: 1.37 KB

Versions: 56

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

require 'spree/testing_support/factory_bot'
Spree::TestingSupport::FactoryBot.when_cherry_picked do
  Spree::TestingSupport::FactoryBot.deprecate_cherry_picking

  require 'spree/testing_support/factories/calculator_factory'
  require 'spree/testing_support/factories/shipping_category_factory'
  require 'spree/testing_support/factories/zone_factory'
end

FactoryBot.define do
  factory(
    :shipping_method,
    aliases: [
      :base_shipping_method
    ],
    class: 'Spree::ShippingMethod'
  ) do
    zones do
      [Spree::Zone.find_by(name: 'GlobalZone') || FactoryBot.create(:global_zone)]
    end

    name { 'UPS Ground' }
    code { 'UPS_GROUND' }
    carrier { 'UPS' }
    service_level { '1DAYGROUND' }

    calculator { |s| s.association(:shipping_calculator, strategy: :build, preferred_amount: s.cost, preferred_currency: s.currency) }

    transient do
      cost { 10.0 }
      currency { Spree::Config[:currency] }
    end

    before(:create) do |shipping_method, _evaluator|
      if shipping_method.shipping_categories.empty?
        shipping_method.shipping_categories << (Spree::ShippingCategory.first || create(:shipping_category))
      end
    end

    factory :free_shipping_method, class: 'Spree::ShippingMethod' do
      cost { nil }
      association(:calculator, factory: :shipping_no_amount_calculator, strategy: :build)
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
solidus_core-3.4.6 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.5 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.4 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.3.4 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.9 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.8 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.3.3 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.3 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.2 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.7 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.3.2 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.1 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.4.0 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.3.1 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.6 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.1.9 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.3.0 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.5 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.4 lib/spree/testing_support/factories/shipping_method_factory.rb
solidus_core-3.2.3 lib/spree/testing_support/factories/shipping_method_factory.rb