From 6f17b80bb82c989202841c19e81947ecaea963fc Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 6 Aug 2020 10:11:47 +0100 Subject: [PATCH] Move address factory modification to address_factory file and make it always create a state and country in the address if they dont exist in the DB --- spec/factories.rb | 5 ----- spec/factories/address_factory.rb | 9 +++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/spec/factories.rb b/spec/factories.rb index 455fc9b9a4..9862ef9fc2 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -178,11 +178,6 @@ FactoryBot.define do end FactoryBot.modify do - factory :address do - state { Spree::State.find_by name: 'Victoria' } - country { Spree::Country.find_by name: 'Australia' || Spree::Country.first } - end - factory :credit_card do cc_type 'visa' end diff --git a/spec/factories/address_factory.rb b/spec/factories/address_factory.rb index ec5f149d9c..cc8c790d7e 100644 --- a/spec/factories/address_factory.rb +++ b/spec/factories/address_factory.rb @@ -1,5 +1,14 @@ FactoryBot.modify do factory :address do + state { Spree::State.find_by(name: 'Victoria') || Spree::State.first || create(:state) } + country do |address| + if address.state + address.state.country + else + Spree::Country.find_by(name: 'Australia') || Spree::Country.first || create(:country) + end + end + trait :randomized do firstname { Faker::Name.first_name } lastname { Faker::Name.last_name }