summaryrefslogtreecommitdiff
path: root/spec/models/note_spec.rb
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-08-17 12:14:44 -0500
committerDouwe Maan <douwe@selenight.nl>2016-08-17 12:16:46 -0500
commit4a13aa9f34ab4114bc485e1ca8fa0db8daa0394b (patch)
tree17554a901009603f52be08914636495b06db2e68 /spec/models/note_spec.rb
parentf3acf9fd248a16665a114bf6cce761e9277c2d5b (diff)
downloadgitlab-ce-4a13aa9f34ab4114bc485e1ca8fa0db8daa0394b.tar.gz
Store discussion_id on Note for faster discussion lookup.
Diffstat (limited to 'spec/models/note_spec.rb')
-rw-r--r--spec/models/note_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/models/note_spec.rb b/spec/models/note_spec.rb
index 9f55fd1d53c..ef2747046b9 100644
--- a/spec/models/note_spec.rb
+++ b/spec/models/note_spec.rb
@@ -321,4 +321,29 @@ describe Note, models: true do
expect(subject[active_diff_note3.line_code].id).to eq(active_diff_note3.discussion_id)
end
end
+
+ describe "#discussion_id" do
+ let(:note) { create(:note) }
+
+ context "when it is newly created" do
+ it "has a discussion id" do
+ expect(note.discussion_id).not_to be_nil
+ expect(note.discussion_id).to match(/\A\h{40}\z/)
+ end
+ end
+
+ context "when it didn't store a discussion id before" do
+ before do
+ note.update_column(:discussion_id, nil)
+ end
+
+ it "has a discussion id" do
+ # The discussion_id is set in `after_initialize`, so `reload` won't work
+ reloaded_note = Note.find(note.id)
+
+ expect(reloaded_note.discussion_id).not_to be_nil
+ expect(reloaded_note.discussion_id).to match(/\A\h{40}\z/)
+ end
+ end
+ end
end