Sha256: 939e0f99a82de388bb1ac1fe7e829601e5e8a11427c3ec6405a33818331b0074

Contents?: true

Size: 1.66 KB

Versions: 56

Compression:

Stored size: 1.66 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/country_factory'
  require 'spree/testing_support/factories/state_factory'
  require 'spree/testing_support/factories/product_factory'
end

FactoryBot.define do
  factory :stock_location, class: 'Spree::StockLocation' do
    name { 'NY Warehouse' }
    address1 { '1600 Pennsylvania Ave NW' }
    city { 'Washington' }
    zipcode { '20500' }
    phone { '(202) 456-1111' }
    active { true }
    backorderable_default { true }

    country  { |stock_location| Spree::Country.first || stock_location.association(:country) }
    state do |stock_location|
      carmen_country = Carmen::Country.coded(stock_location.country.iso)
      if carmen_country.subregions?
        stock_location.country.states.first || stock_location.association(:state, country: stock_location.country)
      end
    end

    factory :stock_location_without_variant_propagation do
      propagate_all_variants { false }
    end

    factory :stock_location_with_items do
      after(:create) do |stock_location, _evaluator|
        # variant will add itself to all stock_locations in an after_create
        # creating a product will automatically create a master variant
        product_1 = create(:product)
        product_2 = create(:product)

        stock_location.stock_items.where(variant_id: product_1.master.id).first.adjust_count_on_hand(10)
        stock_location.stock_items.where(variant_id: product_2.master.id).first.adjust_count_on_hand(20)
      end
    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/stock_location_factory.rb
solidus_core-3.4.5 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.4.4 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.3.4 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.9 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.8 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.3.3 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.4.3 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.4.2 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.7 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.3.2 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.4.1 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.4.0 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.3.1 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.6 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.1.9 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.3.0 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.5 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.4 lib/spree/testing_support/factories/stock_location_factory.rb
solidus_core-3.2.3 lib/spree/testing_support/factories/stock_location_factory.rb