Commit f1f9578f authored by mhasbini's avatar mhasbini

Fix issue's note cache expiration after delete

parent 9c576cc7
...@@ -96,6 +96,7 @@ class Note < ActiveRecord::Base ...@@ -96,6 +96,7 @@ class Note < ActiveRecord::Base
before_validation :set_discussion_id, on: :create before_validation :set_discussion_id, on: :create
after_save :keep_around_commit, unless: :for_personal_snippet? after_save :keep_around_commit, unless: :for_personal_snippet?
after_save :expire_etag_cache after_save :expire_etag_cache
after_destroy :expire_etag_cache
class << self class << self
def model_name def model_name
......
---
title: Fix issue's note cache expiration after delete
merge_request:
author: mhasbini
...@@ -622,12 +622,22 @@ describe Note, models: true do ...@@ -622,12 +622,22 @@ describe Note, models: true do
describe 'expiring ETag cache' do describe 'expiring ETag cache' do
let(:note) { build(:note_on_issue) } let(:note) { build(:note_on_issue) }
it "expires cache for note's issue when note is saved" do def expect_expiration(note)
expect_any_instance_of(Gitlab::EtagCaching::Store) expect_any_instance_of(Gitlab::EtagCaching::Store)
.to receive(:touch) .to receive(:touch)
.with("/#{note.project.namespace.to_param}/#{note.project.to_param}/noteable/issue/#{note.noteable.id}/notes") .with("/#{note.project.namespace.to_param}/#{note.project.to_param}/noteable/issue/#{note.noteable.id}/notes")
end
it "expires cache for note's issue when note is saved" do
expect_expiration(note)
note.save! note.save!
end end
it "expires cache for note's issue when note is destroyed" do
expect_expiration(note)
note.destroy!
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment