diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-02-08 13:32:55 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-02-08 13:32:55 +0000 |
commit | 4c8a1d3a3d2a8ea1e67519ffb70ff5a224b6a26e (patch) | |
tree | 9c70030db97d9a7caaa97388714db7feffc384d5 | |
parent | 9ce16b48713e6a7bd8af20ea2f652dad804712fe (diff) | |
parent | e4029070a205351ca9677311c9675f4f933e8f45 (diff) | |
download | gitlab-ce-4c8a1d3a3d2a8ea1e67519ffb70ff5a224b6a26e.tar.gz |
Merge branch '26705-filter-todos-by-manual-add' into 'master'
Filter todos by manual add
Closes #26705
See merge request !8861
-rw-r--r-- | app/helpers/todos_helper.rb | 4 | ||||
-rw-r--r-- | changelogs/unreleased/26705-filter-todos-by-manual-add.yml | 4 | ||||
-rw-r--r-- | spec/factories/todos.rb | 4 | ||||
-rw-r--r-- | spec/features/todos/todos_filtering_spec.rb | 57 |
4 files changed, 61 insertions, 8 deletions
diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index c568cca9e5e..d7d51c99979 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -86,7 +86,9 @@ module TodosHelper [ { id: '', text: 'Any Action' }, { 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 diff --git a/changelogs/unreleased/26705-filter-todos-by-manual-add.yml b/changelogs/unreleased/26705-filter-todos-by-manual-add.yml new file mode 100644 index 00000000000..3521496a20e --- /dev/null +++ b/changelogs/unreleased/26705-filter-todos-by-manual-add.yml @@ -0,0 +1,4 @@ +--- +title: Filter todos by manual add +merge_request: 8691 +author: Jacopo Beschi @jacopo-beschi diff --git a/spec/factories/todos.rb b/spec/factories/todos.rb index 91d6f39a5bf..275561502cd 100644 --- a/spec/factories/todos.rb +++ b/spec/factories/todos.rb @@ -24,6 +24,10 @@ FactoryGirl.define do target factory: :merge_request end + trait :marked do + action { Todo::MARKED } + end + trait :approval_required do action { Todo::APPROVAL_REQUIRED } end diff --git a/spec/features/todos/todos_filtering_spec.rb b/spec/features/todos/todos_filtering_spec.rb index d1f2bc78884..e8f06916d53 100644 --- a/spec/features/todos/todos_filtering_spec.rb +++ b/spec/features/todos/todos_filtering_spec.rb @@ -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 end - it 'filters by action' do - click_button 'Action' - within '.dropdown-menu-action' do - click_link 'Assigned' + 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 - wait_for_ajax + 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(find('.todos-list')).to have_content ' assigned you ' - expect(find('.todos-list')).not_to have_content ' mentioned ' + expect_to_see_action(:build_failed) + end + + def filter_action(name) + click_button 'Action' + within '.dropdown-menu-action' do + click_link name + end + + wait_for_ajax + end + + def expect_to_see_action(action_name) + 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 |