From 580ce4f2d85f89e81825c3b5993fd3ee68f4d93a Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Sat, 25 Aug 2012 13:54:38 -0400 Subject: Minor cleanup to Milestone model and spec Back-ported from my still-in-progress major cleanup. --- spec/models/milestone_spec.rb | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'spec/models/milestone_spec.rb') diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index 880d3f307a3..e9acc4e2815 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -31,24 +31,33 @@ describe Milestone do it { milestone.should be_valid } - describe "Issues" do - before do + describe "#percent_complete" do + it "should not count open issues" do milestone.issues << issue + milestone.percent_complete.should == 0 end - it { milestone.percent_complete.should == 0 } + it "should count closed issues" do + issue.update_attributes(closed: true) + milestone.issues << issue + milestone.percent_complete.should == 100 + end - it do - issue.update_attributes closed: true + it "should recover from dividing by zero" do + milestone.issues.should_receive(:count).and_return(0) milestone.percent_complete.should == 100 end end - describe :expires_at do - before do - milestone.update_attributes due_date: Date.today + 1.day + describe "#expires_at" do + it "should be nil when due_date is unset" do + milestone.update_attributes(due_date: nil) + milestone.expires_at.should be_nil end - it { milestone.expires_at.should_not be_nil } + it "should not be nil when due_date is set" do + milestone.update_attributes(due_date: Date.tomorrow) + milestone.expires_at.should be_present + end end end -- cgit v1.2.3