diff --git a/app/models/note.rb b/app/models/note.rb index c655eb80..aa034ef4 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -42,6 +42,14 @@ class Note < ActiveRecord::Base mount_uploader :attachment, AttachmentUploader + def self.create_status_change_note(noteable, author, status) + create({ :noteable => noteable, + :project => noteable.project, + :author => author, + :note => "_Status changed to #{status}_" }, + :without_protection => true) + end + def notify @notify ||= false end diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb index c74f7277..af6ee9b8 100644 --- a/spec/models/note_spec.rb +++ b/spec/models/note_spec.rb @@ -70,6 +70,25 @@ describe Note do end end + describe '#create_status_change_note' do + let(:project) { Factory.create(:project) } + let(:thing) { Factory.create(:issue, :project => project) } + let(:author) { Factory(:user) } + let(:status) { 'new_status' } + + subject { Note.create_status_change_note(thing, author, status) } + + it 'creates and saves a Note' do + should be_a Note + subject.id.should_not be_nil + end + + its(:noteable) { should == thing } + its(:project) { should == thing.project } + its(:author) { should == author } + its(:note) { should =~ /Status changed to #{status}/ } + end + describe :authorization do before do @p1 = project