summaryrefslogtreecommitdiff
path: root/spec/services
diff options
context:
space:
mode:
authorJarka Kadlecova <jarka@gitlab.com>2017-10-04 18:24:23 +0200
committerJarka Kadlecova <jarka@gitlab.com>2017-10-09 15:12:39 +0200
commitd6612fbcee7245325ee9799f49b5ea46a5037308 (patch)
tree43468fecebbfa7fefe33d4cedf71df552b3d2e31 /spec/services
parentf277fa14094e5515e2317d2baa1fa0bfb95966da (diff)
downloadgitlab-ce-d6612fbcee7245325ee9799f49b5ea46a5037308.tar.gz
Don't create todos for old issue assignees
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/issues/update_service_spec.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/services/issues/update_service_spec.rb b/spec/services/issues/update_service_spec.rb
index bdbe0a353fb..f07b81e842a 100644
--- a/spec/services/issues/update_service_spec.rb
+++ b/spec/services/issues/update_service_spec.rb
@@ -267,6 +267,30 @@ describe Issues::UpdateService, :mailer do
end
end
+ context 'when a new assignee added' do
+ subject { update_issue(assignees: issue.assignees + [user2]) }
+
+ it 'creates only 1 new todo' do
+ expect { subject }.to change { Todo.count }.by(1)
+ end
+
+ it 'creates a todo for new assignee' do
+ subject
+
+ attributes = {
+ project: project,
+ author: user,
+ user: user2,
+ target_id: issue.id,
+ target_type: issue.class.name,
+ action: Todo::ASSIGNED,
+ state: :pending
+ }
+
+ expect(Todo.where(attributes).count).to eq(1)
+ end
+ end
+
context 'when the milestone change' do
it 'marks todos as done' do
update_issue(milestone: create(:milestone))