summaryrefslogtreecommitdiff
path: root/spec/services
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2018-04-06 09:13:49 +0000
committerSean McGivern <sean@mcgivern.me.uk>2018-04-06 09:13:49 +0000
commit20e9b32c96a5b08e3f61c8974b43977f98d8666e (patch)
tree8d2e0e895c7012088eaa62015a311aee2ab93d39 /spec/services
parent6cad73439b3850e2ed7e5f09357cff43f73e47fb (diff)
parentb099c6ff9fcbd81beb75fd12bff8d1d5b9c16083 (diff)
downloadgitlab-ce-20e9b32c96a5b08e3f61c8974b43977f98d8666e.tar.gz
Merge branch 'ui-mr-counter-cache' into 'master'
Deleting a MR you are assigned to should decrements counter Closes #44458 See merge request gitlab-org/gitlab-ce!17951
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/issuable/destroy_service_spec.rb14
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)