diff --git a/app/models/spree/address.rb b/app/models/spree/address.rb index 9c305be78d..9d7cac881f 100644 --- a/app/models/spree/address.rb +++ b/app/models/spree/address.rb @@ -12,7 +12,7 @@ module Spree belongs_to :state, class_name: "Spree::State", optional: true has_one :enterprise, dependent: :restrict_with_exception - has_many :shipments + has_many :shipments, dependent: :restrict_with_exception validates :address1, :city, :phone, presence: true validates :company, presence: true, unless: -> { first_name.blank? || last_name.blank? } diff --git a/spec/models/spree/address_spec.rb b/spec/models/spree/address_spec.rb index 41d0a28b15..c0b4f17234 100644 --- a/spec/models/spree/address_spec.rb +++ b/spec/models/spree/address_spec.rb @@ -134,6 +134,17 @@ describe Spree::Address do end end + context "associations" do + it "destroys shipments upon destroy" do + address = create(:address) + create(:shipment, address:) + + expect { + address.destroy + }.to raise_error(ActiveRecord::DeleteRestrictionError) + end + end + context ".default" do it "sets up a new record the default country" do expect(Spree::Address.default.country).to eq DefaultCountry.country