diff options
author | Robb Kidd <robb@thekidds.org> | 2012-05-20 14:15:13 -0400 |
---|---|---|
committer | Robb Kidd <robb@thekidds.org> | 2012-06-20 14:09:46 -0400 |
commit | 2416e3cb19d6a668fc3274b1ae3382f4119dac1d (patch) | |
tree | f980fe7df789eb2e1f7c7e1cf5dd999ea6256a20 | |
parent | f6035552e5d83b36f69e1ac7fa4b40ee5f7ab4fb (diff) | |
download | gitlab-ce-2416e3cb19d6a668fc3274b1ae3382f4119dac1d.tar.gz |
Add new utility method for an issue to know whether it is being reassigned
-rw-r--r-- | app/models/issue.rb | 11 | ||||
-rw-r--r-- | spec/models/issue_spec.rb | 19 |
2 files changed, 25 insertions, 5 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index 3ed47ef1bea..f1cb2e220b9 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -27,7 +27,7 @@ class Issue < ActiveRecord::Base validates :title, :presence => true, :length => { :within => 0..255 } - + validates :description, :length => { :within => 0..2000 } @@ -55,6 +55,15 @@ class Issue < ActiveRecord::Base def new? today? && created_at == updated_at end + + # Return the number of +1 comments (upvotes) + def upvotes + notes.select(&:upvote?).size + end + + def is_being_reassigned? + assignee_id_changed? + end end # == Schema Information # diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb index 791e9cdeb9f..68c05f2edf4 100644 --- a/spec/models/issue_spec.rb +++ b/spec/models/issue_spec.rb @@ -20,10 +20,21 @@ describe Issue do it { Issue.should respond_to :opened } end - it { Factory.create(:issue, - :author => Factory(:user), - :assignee => Factory(:user), - :project => Factory.create(:project)).should be_valid } + subject { Factory.create(:issue, + :author => Factory(:user), + :assignee => Factory(:user), + :project => Factory.create(:project)) } + it { should be_valid } + + describe '#is_being_reassigned?' do + it 'returns true if the issue assignee has changed' do + subject.assignee = Factory(:user) + subject.is_being_reassigned?.should be_true + end + it 'returns false if the issue assignee has not changed' do + subject.is_being_reassigned?.should be_false + end + end describe "plus 1" do let(:project) { Factory(:project) } |