diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index df5cb17e4..81293b386 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -76,4 +76,8 @@ class SpendingProposal < ActiveRecord::Base not feasible? end + def code + "#{id}" + (administrator.present? ? "-#{administrator.id}" : "") + end + end diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index bf5ee138f..9ca2fae94 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -94,6 +94,19 @@ describe SpendingProposal do an exception occurs when sending the unfeasible email, because spending_proposal.administrator.id is nil.." end + + describe "#code" do + let(:spending_proposal) { create(:spending_proposal) } + + it "returns the proposal id" do + expect(spending_proposal.code).to eq("#{spending_proposal.id}") + end + + it "returns the administrator id when assigned" do + spending_proposal.administrator = create(:administrator) + expect(spending_proposal.code).to eq("#{spending_proposal.id}-#{spending_proposal.administrator.id}") + end + end end describe "by_admin" do