Clear merge requests counter cache after merge
Before this change, the MR counter in the sidebar would be wrong if an MR had been merged since the last update, but not opened or closed, as merging did not trigger a counter cache update.
This commit is contained in:
parent
3209c07140
commit
dc32128de9
|
@ -14,6 +14,7 @@ module MergeRequests
|
|||
notification_service.merge_mr(merge_request, current_user)
|
||||
execute_hooks(merge_request, 'merge')
|
||||
invalidate_cache_counts(merge_request, users: merge_request.assignees)
|
||||
merge_request.update_project_counter_caches
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix merge request counter updates after merge
|
||||
merge_request:
|
||||
author:
|
||||
type: fixed
|
|
@ -11,5 +11,16 @@ describe MergeRequests::PostMergeService do
|
|||
|
||||
describe '#execute' do
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue