Merge branch 'fix-mr-sidebar-counter-after-merge' into 'master'

Clear merge requests counter cache after merge

Closes gitlab-ee#3573 and #38344

See merge request gitlab-org/gitlab-ce!14563
This commit is contained in:
Robert Speicher 2017-09-28 17:47:18 +00:00
commit ff7deb33ae
3 changed files with 17 additions and 0 deletions

View file

@ -14,6 +14,7 @@ module MergeRequests
notification_service.merge_mr(merge_request, current_user) notification_service.merge_mr(merge_request, current_user)
execute_hooks(merge_request, 'merge') execute_hooks(merge_request, 'merge')
invalidate_cache_counts(merge_request, users: merge_request.assignees) invalidate_cache_counts(merge_request, users: merge_request.assignees)
merge_request.update_project_counter_caches
end end
private private

View file

@ -0,0 +1,5 @@
---
title: Fix merge request counter updates after merge
merge_request:
author:
type: fixed

View file

@ -11,5 +11,16 @@ describe MergeRequests::PostMergeService do
describe '#execute' do describe '#execute' do
it_behaves_like 'cache counters invalidator' it_behaves_like 'cache counters invalidator'
it 'refreshes the number of open merge requests for a valid MR', :use_clean_rails_memory_store_caching do
# Cache the counter before the MR changed state.
project.open_merge_requests_count
merge_request.update!(state: 'merged')
service = described_class.new(project, user, {})
expect { service.execute(merge_request) }
.to change { project.open_merge_requests_count }.from(1).to(0)
end
end end
end end