spec/models/administrator_spec.rb
require "rails_helper"
describe Administrator do
describe "#description_or_name" do
let!(:user) { create(:user, username: "Billy Wilder") }
it "returns description if present" do
administrator = create(:administrator, user: user, description: "John Doe")
expect(administrator.description_or_name).to eq("John Doe")
end
it "returns name if description is nil" do
administrator = create(:administrator, user: user)
expect(administrator.description_or_name).to eq("Billy Wilder")
end
it "returns name if description is blank" do
administrator = create(:administrator, description: "")
expect(administrator.description_or_name).to eq(administrator.name)
end
end
describe "#description_or_name_and_email" do
let!(:user) { create(:user, username: "Billy Wilder", email: "test@test.com") }
it "returns description and email if decription present" do
administrator = create(:administrator, description: "John Doe", user: user)
expect(administrator.description_or_name_and_email).to eq("John Doe (test@test.com)")
end
it "returns name and email if description is not present" do
administrator = create(:administrator, user: user)
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