diff options
author | Ezekiel Kigbo <ekigbo@gitlab.com> | 2019-07-09 10:33:30 +1000 |
---|---|---|
committer | Ezekiel Kigbo <ekigbo@gitlab.com> | 2019-07-12 09:53:47 +1000 |
commit | b054a96182ebae41ca4f934a822014c62b91385f (patch) | |
tree | 87abd8de1f21456e3947b5ca9765e944f3fce9a4 /spec/helpers | |
parent | af0e2e377f03e2cb6c8e5db543975739c412c1f6 (diff) | |
download | gitlab-ce-b054a96182ebae41ca4f934a822014c62b91385f.tar.gz |
Added tests for sort icon current
Refactor sort direction icon
Diffstat (limited to 'spec/helpers')
-rw-r--r-- | spec/helpers/sorting_helper_spec.rb | 100 |
1 files changed, 37 insertions, 63 deletions
diff --git a/spec/helpers/sorting_helper_spec.rb b/spec/helpers/sorting_helper_spec.rb index 93e7c2c5840..0a31b8ad8d6 100644 --- a/spec/helpers/sorting_helper_spec.rb +++ b/spec/helpers/sorting_helper_spec.rb @@ -6,6 +6,10 @@ describe SortingHelper do include IconsHelper include ExploreHelper + def set_sorting_url(option) + allow(self).to receive(:request).and_return(double(path: 'http://test.com', query_parameters: { label_name: option })) + end + describe '#issuable_sort_option_title' do it 'returns correct title for issuable_sort_option_overrides key' do expect(issuable_sort_option_title('created_asc')).to eq('Created date') @@ -22,7 +26,7 @@ describe SortingHelper do describe '#issuable_sort_direction_button' do before do - allow(self).to receive(:request).and_return(double(path: 'http://test.com', query_parameters: { label_name: 'test_label' })) + set_sorting_url 'test_label' end it 'keeps label filter param' do @@ -46,8 +50,6 @@ describe SortingHelper do end end - # TODO: need separate tests for /admin/projects and /projects - # TODO: should this be renamed to `projects_sort_option_title??` ... maybe not def stub_controller_path(value) allow(helper.controller).to receive(:controller_path).and_return(value) end @@ -63,14 +65,14 @@ describe SortingHelper do describe 'with `admin/projects` controller' do before do - stub_controller_path('admin/projects') + stub_controller_path 'admin/projects' end describe '#projects_sort_options_hash' do it 'returns a hash of available sorting options' do hash = projects_sort_options_hash - admin_options = project_common_options.merge( { + admin_options = project_common_options.merge({ sort_value_oldest_activity => sort_title_oldest_activity, sort_value_oldest_created => sort_title_oldest_created, sort_value_recently_created => sort_title_recently_created, @@ -84,7 +86,7 @@ describe SortingHelper do describe 'with `projects` controller' do before do - stub_controller_path('projects') + stub_controller_path 'projects' end describe '#projects_sort_options_hash' do @@ -99,7 +101,7 @@ describe SortingHelper do end end - describe '#projects_reverse_sort_options_hash' do + describe '#projects_reverse_sort_options_hash' do it 'returns a reversed hash of available sorting options' do reverse_hash = projects_reverse_sort_options_hash @@ -122,24 +124,37 @@ describe SortingHelper do end describe '#project_sort_direction_button' do - # TODO: add more of these - # TODO: Not too sure about these - # Take a look at the ui and just go with that - # it 'returns icon with sort-highest when sort is created_date' do - # expect(project_sort_direction_button('created_date')).to include('sort-highest') - # end + it 'returns the correct icon for each sort option' do + sort_lowest_icon = 'sort-lowest' + sort_highest_icon = 'sort-highest' + + sort_options_icons = { + sort_value_latest_activity => sort_highest_icon, + sort_value_recently_created => sort_highest_icon, + sort_value_name_desc => sort_highest_icon, + sort_value_stars_desc => sort_highest_icon, + sort_value_oldest_activity => sort_lowest_icon, + sort_value_oldest_created => sort_lowest_icon, + sort_value_name => sort_lowest_icon, + sort_value_stars_asc => sort_lowest_icon + } + + sort_options_icons.each do |selected_sort, icon| + set_sorting_url selected_sort + + expect(project_sort_direction_button(selected_sort)).to include(icon) + end + end - # it 'returns icon with sort-lowest when sort is asc' do - # expect(project_sort_direction_button('created_asc')).to include('sort-lowest') - # end + it 'returns the correct link to reverse the current sort option' do + sort_options_links = projects_reverse_sort_options_hash - # it 'returns icon with sort-lowest when sorting by milestone' do - # expect(project_sort_direction_button('milestone')).to include('sort-lowest') - # end + sort_options_links.each do |selected_sort, reverse_sort| + set_sorting_url selected_sort - # it 'returns icon with sort-lowest when sorting by due_date' do - # expect(project_sort_direction_button('due_date')).to include('sort-lowest') - # end + expect(project_sort_direction_button(selected_sort)).to include(reverse_sort) + end + end end describe '#projects_sort_option_titles' do @@ -187,47 +202,6 @@ describe SortingHelper do end end end - - describe '#projects_reverse_sort_options_hash' do - it 'returns a reversed hash of available sorting options' do - reverse_hash = projects_reverse_sort_options_hash - - options = { - sort_value_latest_activity => sort_value_oldest_activity, - sort_value_recently_created => sort_value_oldest_created, - sort_value_name => sort_value_name_desc, - sort_value_stars_desc => sort_value_stars_asc, - sort_value_oldest_activity => sort_value_latest_activity, - sort_value_oldest_created => sort_value_recently_created, - sort_value_name_desc => sort_value_name, - sort_value_stars_asc => sort_value_stars_desc - } - - options.each do |key, opt| - expect(reverse_hash).to include(key) - expect(reverse_hash[key]).to eq(opt) - end - end - end - - describe '#project_sort_direction_button' do - # TODO: these don't look correct - # it 'returns icon with sort-highest when sort is created_date' do - # expect(project_sort_direction_button('created_date')).to include('sort-highest') - # end - - # it 'returns icon with sort-lowest when sort is asc' do - # expect(project_sort_direction_button('created_asc')).to include('sort-lowest') - # end - - # it 'returns icon with sort-lowest when sorting by milestone' do - # expect(project_sort_direction_button('milestone')).to include('sort-lowest') - # end - - # it 'returns icon with sort-lowest when sorting by due_date' do - # expect(project_sort_direction_button('due_date')).to include('sort-lowest') - # end - end end end end |