New TodoService#todo_exists? method
Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
42e30a5012
commit
aadc5062eb
4 changed files with 19 additions and 3 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue