diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-16 21:47:33 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-20 12:10:26 -0200 |
commit | c86b12bf69828da47dc535021aa3847d61d2d642 (patch) | |
tree | 1a038a563bb2f0101c09b7c132a65719ddf83785 /spec | |
parent | 7bed6ee21d1615b4625754f3af803496938ecef6 (diff) | |
download | gitlab-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.rb | 7 | ||||
-rw-r--r-- | spec/services/task_service_spec.rb | 17 |
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) |