Commit e4029070 authored by Jacopo's avatar Jacopo

Filter todos by manual add

Added the option to filter todo by Added and Pipelines
parent b78d06b7
...@@ -86,7 +86,9 @@ module TodosHelper ...@@ -86,7 +86,9 @@ module TodosHelper
[ [
{ id: '', text: 'Any Action' }, { id: '', text: 'Any Action' },
{ id: Todo::ASSIGNED, text: 'Assigned' }, { id: Todo::ASSIGNED, text: 'Assigned' },
{ id: Todo::MENTIONED, text: 'Mentioned' } { id: Todo::MENTIONED, text: 'Mentioned' },
{ id: Todo::MARKED, text: 'Added' },
{ id: Todo::BUILD_FAILED, text: 'Pipelines' }
] ]
end end
......
---
title: Filter todos by manual add
merge_request: 8691
author: Jacopo Beschi @jacopo-beschi
...@@ -24,6 +24,10 @@ FactoryGirl.define do ...@@ -24,6 +24,10 @@ FactoryGirl.define do
target factory: :merge_request target factory: :merge_request
end end
trait :marked do
action { Todo::MARKED }
end
trait :approval_required do trait :approval_required do
action { Todo::APPROVAL_REQUIRED } action { Todo::APPROVAL_REQUIRED }
end end
......
...@@ -98,15 +98,58 @@ describe 'Dashboard > User filters todos', feature: true, js: true do ...@@ -98,15 +98,58 @@ describe 'Dashboard > User filters todos', feature: true, js: true do
expect(find('.todos-list')).not_to have_content merge_request.to_reference expect(find('.todos-list')).not_to have_content merge_request.to_reference
end end
it 'filters by action' do describe 'filter by action' do
before do
create(:todo, :build_failed, user: user_1, author: user_2, project: project_1)
create(:todo, :marked, user: user_1, author: user_2, project: project_1, target: issue)
end
it 'filters by Assigned' do
filter_action('Assigned')
expect_to_see_action(:assigned)
end
it 'filters by Mentioned' do
filter_action('Mentioned')
expect_to_see_action(:mentioned)
end
it 'filters by Added' do
filter_action('Added')
expect_to_see_action(:marked)
end
it 'filters by Pipelines' do
filter_action('Pipelines')
expect_to_see_action(:build_failed)
end
def filter_action(name)
click_button 'Action' click_button 'Action'
within '.dropdown-menu-action' do within '.dropdown-menu-action' do
click_link 'Assigned' click_link name
end end
wait_for_ajax wait_for_ajax
end
expect(find('.todos-list')).to have_content ' assigned you ' def expect_to_see_action(action_name)
expect(find('.todos-list')).not_to have_content ' mentioned ' action_names = {
assigned: ' assigned you ',
mentioned: ' mentioned ',
marked: ' added a todo for ',
build_failed: ' build failed for '
}
action_name_text = action_names.delete(action_name)
expect(find('.todos-list')).to have_content action_name_text
action_names.each_value do |other_action_text|
expect(find('.todos-list')).not_to have_content other_action_text
end
end
end end
end end
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