Sha256: e8a4b7540ee1cd425d01f45ac0f7c005b6ed14ca0b55603232335dea7d39c5ee

Contents?: true

Size: 1.46 KB

Versions: 11

Compression:

Stored size: 1.46 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/state_factory'
  require 'spree/testing_support/factories/country_factory'
end
FactoryBot.define do
  factory :address, class: 'Spree::Address' do
    transient do
      # There's `Spree::Address#country_iso=`, prohibiting me from using `country_iso` here
      country_iso_code { 'US' }
      state_code { 'AL' }
    end

    name { 'John Von Doe' }
    company { 'Company' }
    address1 { '10 Lovely Street' }
    address2 { 'Northwest' }
    city { 'Herndon' }
    sequence(:zipcode, 10001) { |i| i.to_s }
    phone { '555-555-0199' }
    alternative_phone { '555-555-0199' }

    state do |address|
      Spree::State.joins(:country).where('spree_countries.iso = (?)', country_iso_code).find_by(abbr: state_code) ||
        address.association(
          :state,
          strategy: :create,
          country_iso: country_iso_code,
          state_code: state_code
        )
    end

    country do |address|
      if address.state
        address.state.country
      else
        address.association(:country, strategy: :create, iso: country_iso_code)
      end
    end
  end

  factory :ship_address, parent: :address do
    address1 { 'A Different Road' }
  end

  factory :bill_address, parent: :address do
    address1 { 'PO Box 1337' }
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
solidus_core-3.2.9 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.8 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.7 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.6 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.5 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.4 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.3 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.2 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.1 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.0 lib/spree/testing_support/factories/address_factory.rb
solidus_core-3.2.0.alpha lib/spree/testing_support/factories/address_factory.rb