Commit 02924de3e1555bcd89097353ffb7eb552113b42e
1 parent
00ec81ea
Exists in
master
and in
4 other branches
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 | ... | ... |