diff options
author | m b <becker714td@gmail.com> | 2018-03-23 00:09:26 -0500 |
---|---|---|
committer | m b <becker714td@gmail.com> | 2018-04-05 13:24:45 -0500 |
commit | b099c6ff9fcbd81beb75fd12bff8d1d5b9c16083 (patch) | |
tree | bab585d9d1c522792c9313a3e5c1c1be523beaa3 /spec | |
parent | 6b3585d8ea15a7ee1a5cd2f5799caace48ab0c32 (diff) | |
download | gitlab-ce-b099c6ff9fcbd81beb75fd12bff8d1d5b9c16083.tar.gz |
Deleting a MR you are assigned to should decrements counter
The merge request counter in the UI was not decreasing when a merge
request was deleting.
This was just due to the cache not being
refreshed on a delete action.
fixes: https://gitlab.com/gitlab-org/gitlab-ce/issues/44458
Diffstat (limited to 'spec')
-rw-r--r-- | spec/services/issuable/destroy_service_spec.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/spec/services/issuable/destroy_service_spec.rb b/spec/services/issuable/destroy_service_spec.rb index 0a3647a814f..8ccbba7fa58 100644 --- a/spec/services/issuable/destroy_service_spec.rb +++ b/spec/services/issuable/destroy_service_spec.rb @@ -8,7 +8,7 @@ describe Issuable::DestroyService do describe '#execute' do context 'when issuable is an issue' do - let!(:issue) { create(:issue, project: project, author: user) } + let!(:issue) { create(:issue, project: project, author: user, assignees: [user]) } it 'destroys the issue' do expect { service.execute(issue) }.to change { project.issues.count }.by(-1) @@ -26,10 +26,15 @@ describe Issuable::DestroyService do expect { service.execute(issue) } .to change { user.todos_pending_count }.from(1).to(0) end + + it 'invalidates the issues count cache for the assignees' do + expect_any_instance_of(User).to receive(:invalidate_cache_counts).once + service.execute(issue) + end end context 'when issuable is a merge request' do - let!(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: user) } + let!(:merge_request) { create(:merge_request, target_project: project, source_project: project, author: user, assignee: user) } it 'destroys the merge request' do expect { service.execute(merge_request) }.to change { project.merge_requests.count }.by(-1) @@ -41,6 +46,11 @@ describe Issuable::DestroyService do service.execute(merge_request) end + it 'invalidates the merge request caches for the MR assignee' do + expect_any_instance_of(User).to receive(:invalidate_cache_counts).once + service.execute(merge_request) + end + it 'updates the todo caches for users with todos on the merge request' do create(:todo, target: merge_request, user: user, author: user, project: project) |