diff --git a/app/models/administrator.rb b/app/models/administrator.rb index 1c5cb027a..bf12b94cf 100644 --- a/app/models/administrator.rb +++ b/app/models/administrator.rb @@ -1,5 +1,7 @@ class Administrator < ApplicationRecord belongs_to :user, touch: true + has_many :budget_administrators, dependent: :destroy + delegate :name, :email, :name_and_email, to: :user validates :user_id, presence: true, uniqueness: true diff --git a/spec/models/administrator_spec.rb b/spec/models/administrator_spec.rb index b2fbb5392..a891134d3 100644 --- a/spec/models/administrator_spec.rb +++ b/spec/models/administrator_spec.rb @@ -38,4 +38,13 @@ describe Administrator do expect(administrator.description_or_name_and_email).to eq("Billy Wilder (test@test.com)") end end + + describe "#destroy" do + it "removes dependent budget administrator records" do + administrator = create(:administrator) + create_list(:budget, 2, administrators: [administrator]) + + expect { administrator.destroy }.to change { BudgetAdministrator.count }.by(-2) + end + end end