diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-17 17:55:45 -0200 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-02-20 12:12:05 -0200 |
commit | 4120b7941d75217d013dcc9612e3e5dff76f10d5 (patch) | |
tree | 1c867ee085fab2e1b18f79e830e463d2eaa5d305 | |
parent | 1d476b0656b3ec24e264d7a7c30bdca83704b3bd (diff) | |
download | gitlab-ce-4120b7941d75217d013dcc9612e3e5dff76f10d5.tar.gz |
Does not create a task if new assignee is the current user
-rw-r--r-- | app/services/task_service.rb | 7 | ||||
-rw-r--r-- | spec/services/task_service_spec.rb | 12 |
2 files changed, 15 insertions, 4 deletions
diff --git a/app/services/task_service.rb b/app/services/task_service.rb index d97fa146f5c..c9b30bcb19c 100644 --- a/app/services/task_service.rb +++ b/app/services/task_service.rb @@ -125,7 +125,6 @@ class TaskService mentioned_users.delete(author) mentioned_users.delete(target.assignee) if target.respond_to?(:assignee) - mentioned_users.uniq end @@ -149,9 +148,9 @@ class TaskService end end - def reassigned_issuable(issuable, user) - if issuable.is_assigned? - create_task(issuable.project, issuable, user, issuable.assignee, Task::ASSIGNED) + def reassigned_issuable(issuable, current_user) + if issuable.is_assigned? && issuable.assignee != current_user + create_task(issuable.project, issuable, current_user, issuable.assignee, Task::ASSIGNED) end end end diff --git a/spec/services/task_service_spec.rb b/spec/services/task_service_spec.rb index e373d3a4931..18ad02dd2df 100644 --- a/spec/services/task_service_spec.rb +++ b/spec/services/task_service_spec.rb @@ -76,6 +76,12 @@ describe TaskService, services: true do should_not_create_any_task { service.reassigned_issue(issue, author) } end + + it 'does not create a task if new assignee is the current user' do + unassigned_issue.update_attribute(:assignee, john_doe) + + should_not_create_any_task { service.reassigned_issue(unassigned_issue, john_doe) } + end end describe '#mark_pending_tasks_as_done' do @@ -203,6 +209,12 @@ describe TaskService, services: true do should_not_create_any_task { service.reassigned_merge_request(mr_assigned, author) } end + + it 'does not create a task if new assignee is the current user' do + mr_assigned.update_attribute(:assignee, john_doe) + + should_not_create_any_task { service.reassigned_merge_request(mr_assigned, john_doe) } + end end describe '#merge_merge_request' do |