From 7c92a92537e55f488a3dd6014d46af0a5bf5c9ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Fri, 8 Jan 2016 12:11:24 +0100 Subject: [PATCH] adds resolution query methods --- app/models/spending_proposal.rb | 12 +++++++ spec/models/spending_proposal_spec.rb | 51 +++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index e9ff0f728..157b5f586 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -29,4 +29,16 @@ class SpendingProposal < ActiveRecord::Base def reject update_attribute(:resolution, "rejected") end + + def accepted? + resolution == "accepted" + end + + def rejected? + resolution == "rejected" + end + + def unresolved? + resolution.blank? + end end diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index d02d74eec..25bccbfc6 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -43,6 +43,15 @@ describe SpendingProposal do end describe "resolution status" do + it "should be valid" do + spending_proposal.resolution = "accepted" + expect(spending_proposal).to be_valid + spending_proposal.resolution = "rejected" + expect(spending_proposal).to be_valid + spending_proposal.resolution = "wrong" + expect(spending_proposal).to_not be_valid + end + it "can be accepted" do spending_proposal.accept expect(spending_proposal.reload.resolution).to eq("accepted") @@ -52,6 +61,48 @@ describe SpendingProposal do spending_proposal.reject expect(spending_proposal.reload.resolution).to eq("rejected") end + + describe "#accepted?" do + it "should be true if resolution equals 'accepted'" do + spending_proposal.resolution = "accepted" + expect(spending_proposal.accepted?).to eq true + end + + it "should be false otherwise" do + spending_proposal.resolution = "rejected" + expect(spending_proposal.accepted?).to eq false + spending_proposal.resolution = nil + expect(spending_proposal.accepted?).to eq false + end + end + + describe "#rejected?" do + it "should be true if resolution equals 'rejected'" do + spending_proposal.resolution = "rejected" + expect(spending_proposal.rejected?).to eq true + end + + it "should be false otherwise" do + spending_proposal.resolution = "accepted" + expect(spending_proposal.rejected?).to eq false + spending_proposal.resolution = nil + expect(spending_proposal.rejected?).to eq false + end + end + + describe "#unresolved?" do + it "should be true if resolution is blank" do + spending_proposal.resolution = nil + expect(spending_proposal.unresolved?).to eq true + end + + it "should be false otherwise" do + spending_proposal.resolution = "accepted" + expect(spending_proposal.unresolved?).to eq false + spending_proposal.resolution = "rejected" + expect(spending_proposal.unresolved?).to eq false + end + end end describe "scopes" do