summaryrefslogtreecommitdiff
path: root/spec/services/todo_service_spec.rb
diff options
context:
space:
mode:
authorZJ van de Weg <zegerjan@gitlab.com>2016-05-25 14:41:25 +0200
committerZJ van de Weg <zegerjan@gitlab.com>2016-05-25 14:41:25 +0200
commit7ae536002ac981b3d18aae8851d8d70731db29dc (patch)
tree5d0c660df87be8d8d7ac4c50bab9ce1c27cbd876 /spec/services/todo_service_spec.rb
parent20e6e0dbe609f7b0fdd480281223a1a98d645f34 (diff)
parent318b22459bfff1cecfb1f38e381faaca3bc29bbb (diff)
downloadgitlab-ce-7ae536002ac981b3d18aae8851d8d70731db29dc.tar.gz
Merge branch 'master' into awardables
Diffstat (limited to 'spec/services/todo_service_spec.rb')
-rw-r--r--spec/services/todo_service_spec.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/spec/services/todo_service_spec.rb b/spec/services/todo_service_spec.rb
index 0d88b77ad74..6e7ecbd39ba 100644
--- a/spec/services/todo_service_spec.rb
+++ b/spec/services/todo_service_spec.rb
@@ -306,6 +306,25 @@ describe TodoService, services: true do
expect(todo.reload).to be_done
end
end
+
+ describe '#merge_request_build_failed' do
+ it 'creates a pending todo for the merge request author' do
+ service.merge_request_build_failed(mr_unassigned)
+
+ should_create_todo(user: author, target: mr_unassigned, action: Todo::BUILD_FAILED)
+ end
+ end
+
+ describe '#merge_request_push' do
+ it 'marks related pending todos to the target for the user as done' do
+ first_todo = create(:todo, :build_failed, user: author, project: project, target: mr_assigned, author: john_doe)
+ second_todo = create(:todo, :build_failed, user: john_doe, project: project, target: mr_assigned, author: john_doe)
+ service.merge_request_push(mr_assigned, author)
+
+ expect(first_todo.reload).to be_done
+ expect(second_todo.reload).not_to be_done
+ end
+ end
end
def should_create_todo(attributes = {})