Commit 02924de3e1555bcd89097353ffb7eb552113b42e

Authored by Robb Kidd
1 parent 00ec81ea

Add method to Note to create notes about status changes.

Showing 2 changed files with 27 additions and 0 deletions   Show diff stats
app/models/note.rb
... ... @@ -42,6 +42,14 @@ class Note < ActiveRecord::Base
42 42  
43 43 mount_uploader :attachment, AttachmentUploader
44 44  
  45 + def self.create_status_change_note(noteable, author, status)
  46 + create({ :noteable => noteable,
  47 + :project => noteable.project,
  48 + :author => author,
  49 + :note => "_Status changed to #{status}_" },
  50 + :without_protection => true)
  51 + end
  52 +
45 53 def notify
46 54 @notify ||= false
47 55 end
... ...
spec/models/note_spec.rb
... ... @@ -70,6 +70,25 @@ describe Note do
70 70 end
71 71 end
72 72  
  73 + describe '#create_status_change_note' do
  74 + let(:project) { Factory.create(:project) }
  75 + let(:thing) { Factory.create(:issue, :project => project) }
  76 + let(:author) { Factory(:user) }
  77 + let(:status) { 'new_status' }
  78 +
  79 + subject { Note.create_status_change_note(thing, author, status) }
  80 +
  81 + it 'creates and saves a Note' do
  82 + should be_a Note
  83 + subject.id.should_not be_nil
  84 + end
  85 +
  86 + its(:noteable) { should == thing }
  87 + its(:project) { should == thing.project }
  88 + its(:author) { should == author }
  89 + its(:note) { should =~ /Status changed to #{status}/ }
  90 + end
  91 +
73 92 describe :authorization do
74 93 before do
75 94 @p1 = project
... ...