summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormicael.bergeron <micaelbergeron@gmail.com>2017-11-20 13:00:35 -0500
committermicael.bergeron <micaelbergeron@gmail.com>2017-11-20 13:00:35 -0500
commit9ed91479a7bbca1e420cd91a6322493d7ffda749 (patch)
tree809970b30c6ebef4ac76fdc99b00ccb9fc680b9b
parent869fc05d81eaced5d68ef28e334ae9ece80f74f7 (diff)
downloadgitlab-ce-9ed91479a7bbca1e420cd91a6322493d7ffda749.tar.gz
add the missing spec
-rw-r--r--app/models/system_note_metadata.rb4
-rw-r--r--spec/models/note_spec.rb31
2 files changed, 33 insertions, 2 deletions
diff --git a/app/models/system_note_metadata.rb b/app/models/system_note_metadata.rb
index ca0673080af..29035480371 100644
--- a/app/models/system_note_metadata.rb
+++ b/app/models/system_note_metadata.rb
@@ -5,8 +5,8 @@ class SystemNoteMetadata < ActiveRecord::Base
# Other notes can always be safely shown as all its references are
# in the same project (i.e. with the same permissions)
TYPES_WITH_CROSS_REFERENCES = %w[
- cross_reference
- milestone
+ commit cross_reference
+ close duplicate
].freeze
ICON_TYPES = %w[
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index 1ecb50586c7..6e7e8c4c570 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -231,6 +231,37 @@ describe Note do
end
end
+ describe '#cross_reference?' do
+ it 'falsey for user-generated notes' do
+ note = create(:note, system: false)
+
+ expect(note.cross_reference?).to be_falsy
+ end
+
+ context 'when the note might contain cross references' do
+ SystemNoteMetadata::TYPES_WITH_CROSS_REFERENCES.each do |type|
+ let(:note) { create(:note, :system) }
+ let!(:metadata) { create(:system_note_metadata, note: note, action: type) }
+
+ it 'delegates to the cross-reference regex' do
+ expect(note).to receive(:matches_cross_reference_regex?).and_return(false)
+
+ note.cross_reference?
+ end
+ end
+ end
+
+ context 'when the note cannot contain cross references' do
+ let(:commit_note) { build(:note, note: 'mentioned in 1312312313 something else.', system: true) }
+ let(:label_note) { build(:note, note: 'added ~2323232323', system: true) }
+
+ it 'scan for a `mentioned in` prefix' do
+ expect(commit_note.cross_reference?).to be_truthy
+ expect(label_note.cross_reference?).to be_falsy
+ end
+ end
+ end
+
describe 'clear_blank_line_code!' do
it 'clears a blank line code before validation' do
note = build(:note, line_code: ' ')