summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-02-16 21:47:33 -0200
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-02-20 12:10:26 -0200
commitc86b12bf69828da47dc535021aa3847d61d2d642 (patch)
tree1a038a563bb2f0101c09b7c132a65719ddf83785 /spec
parent7bed6ee21d1615b4625754f3af803496938ecef6 (diff)
downloadgitlab-ce-c86b12bf69828da47dc535021aa3847d61d2d642.tar.gz
Marks pending tasks for an user as done when he close the MR
Diffstat (limited to 'spec')
-rw-r--r--spec/services/merge_requests/close_service_spec.rb7
-rw-r--r--spec/services/task_service_spec.rb17
2 files changed, 24 insertions, 0 deletions
diff --git a/spec/services/merge_requests/close_service_spec.rb b/spec/services/merge_requests/close_service_spec.rb
index 50d0c288790..3e72be2dc25 100644
--- a/spec/services/merge_requests/close_service_spec.rb
+++ b/spec/services/merge_requests/close_service_spec.rb
@@ -5,6 +5,9 @@ describe MergeRequests::CloseService, services: true do
let(:user2) { create(:user) }
let(:merge_request) { create(:merge_request, assignee: user2) }
let(:project) { merge_request.project }
+ let!(:pending_task) do
+ create(:pending_assigned_task, user: user, project: project, target: merge_request, author: user2)
+ end
before do
project.team << [user, :master]
@@ -41,6 +44,10 @@ describe MergeRequests::CloseService, services: true do
note = @merge_request.notes.last
expect(note.note).to include 'Status changed to closed'
end
+
+ it 'marks pending tasks as done' do
+ expect(pending_task.reload).to be_done
+ end
end
end
end
diff --git a/spec/services/task_service_spec.rb b/spec/services/task_service_spec.rb
index 0a072dda94b..124f1c659d0 100644
--- a/spec/services/task_service_spec.rb
+++ b/spec/services/task_service_spec.rb
@@ -136,6 +136,23 @@ describe TaskService, services: true do
end
end
+ describe '#close_merge_request' do
+ let!(:first_pending_task) do
+ create(:pending_assigned_task, user: john_doe, project: project, target: mr_assigned, author: author)
+ end
+
+ let!(:second_pending_task) do
+ create(:pending_assigned_task, user: john_doe, project: project, target: mr_assigned, author: author)
+ end
+
+ it 'marks related pending tasks to the target for the user as done' do
+ service.close_merge_request(mr_assigned, john_doe)
+
+ expect(first_pending_task.reload).to be_done
+ expect(second_pending_task.reload).to be_done
+ end
+ end
+
describe '#reassigned_merge_request' do
it 'creates a pending task for new assignee' do
mr_unassigned.update_attribute(:assignee, john_doe)