Commit aadc5062 authored by Rémy Coutable's avatar Rémy Coutable

New TodoService#todo_exists? method

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 42e30a50
......@@ -140,7 +140,7 @@ module SlashCommands
condition do
noteable.persisted? &&
current_user &&
!TodosFinder.new(current_user).execute.exists?(target: noteable)
!TodoService.new.todo_exist?(noteable, current_user)
end
command :todo do
@updates[:todo_event] = 'add'
......@@ -149,7 +149,7 @@ module SlashCommands
desc 'Mark todo as done'
condition do
current_user &&
TodosFinder.new(current_user).execute.exists?(target: noteable)
TodoService.new.todo_exist?(noteable, current_user)
end
command :done do
@updates[:todo_event] = 'done'
......
......@@ -154,6 +154,10 @@ class TodoService
create_todos(current_user, attributes)
end
def todo_exist?(issuable, current_user)
TodosFinder.new(current_user).execute.exists?(target: issuable)
end
private
def create_todos(users, attributes)
......
......@@ -51,7 +51,7 @@ describe Gitlab::SlashCommands::Dsl do
{ name: :one_arg, aliases: [:once, :first], description: '', params: ['The first argument'], noop: false, cond_block: nil },
{ name: :two_args, aliases: [], description: '', params: ['The first argument', 'The second argument'], noop: false, cond_block: nil },
{ name: :cc, aliases: [], description: '', params: [], noop: true, cond_block: nil },
{ name: :wildcard, aliases: [], description: '', params: [], noop: false, cond_block: nil}
{ name: :wildcard, aliases: [], description: '', params: [], noop: false, cond_block: nil }
]
end
......
......@@ -290,6 +290,18 @@ describe TodoService, services: true do
should_create_todo(user: author, target: unassigned_issue, action: Todo::MARKED)
end
end
describe '#todo_exists?' do
it 'returns false when no todo exist for the given issuable' do
expect(service.todo_exist?(unassigned_issue, author)).to be_falsy
end
it 'returns true when a todo exist for the given issuable' do
service.mark_todo(unassigned_issue, author)
expect(service.todo_exist?(unassigned_issue, author)).to be_truthy
end
end
end
describe 'Merge Requests' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment