Commit 9109a339 authored by Felipe Artur's avatar Felipe Artur

Fix roadmaps controller and add some specs

parent 6374e999
...@@ -91,7 +91,7 @@ module IssuableCollections ...@@ -91,7 +91,7 @@ module IssuableCollections
options = { options = {
scope: params[:scope], scope: params[:scope],
state: params[:state], state: params[:state],
sort: set_sort_order_from_user_preference || set_sort_order_from_cookie || default_sort_order sort: set_sort_order
} }
# Used by view to highlight active option # Used by view to highlight active option
...@@ -113,6 +113,10 @@ module IssuableCollections ...@@ -113,6 +113,10 @@ module IssuableCollections
'opened' 'opened'
end end
def set_sort_order
set_sort_order_from_user_preference || set_sort_order_from_cookie || default_sort_order
end
def set_sort_order_from_user_preference def set_sort_order_from_user_preference
return unless current_user return unless current_user
return unless issuable_sorting_field return unless issuable_sorting_field
......
...@@ -16,6 +16,8 @@ module EpicsActions ...@@ -16,6 +16,8 @@ module EpicsActions
def update_cookie_value(value) def update_cookie_value(value)
case value case value
when 'created_asc' then sort_value_oldest_created
when 'created_desc' then sort_value_recently_created
when 'start_date_asc' then sort_value_start_date when 'start_date_asc' then sort_value_start_date
when 'end_date_asc' then sort_value_end_date when 'end_date_asc' then sort_value_end_date
else else
......
...@@ -10,13 +10,17 @@ module Groups ...@@ -10,13 +10,17 @@ module Groups
# show roadmap for a group # show roadmap for a group
def show def show
# Used only to show to correct sort dropdown option on filter bar # Used only to show to correct sort dropdown option on filter bar
@sort = params[:sort] || current_user&.user_preference&.epics_sort || default_sort_order @sort = set_sort_order
@epics_count = EpicsFinder.new(current_user, group_id: @group.id).execute.count @epics_count = EpicsFinder.new(current_user, group_id: @group.id).execute.count
end end
private private
def issuable_sorting_field
:epics_sort
end
def persist_roadmap_layout def persist_roadmap_layout
return unless current_user return unless current_user
......
...@@ -16,6 +16,7 @@ module EE ...@@ -16,6 +16,7 @@ module EE
def epics_sort_options_hash def epics_sort_options_hash
{ {
sort_value_created_date => sort_title_created_date,
sort_value_oldest_created => sort_title_created_date, sort_value_oldest_created => sort_title_created_date,
sort_value_recently_created => sort_title_created_date, sort_value_recently_created => sort_title_created_date,
sort_value_oldest_updated => sort_title_recently_updated, sort_value_oldest_updated => sort_title_recently_updated,
......
...@@ -31,11 +31,25 @@ describe Groups::RoadmapController do ...@@ -31,11 +31,25 @@ describe Groups::RoadmapController do
expect(response).to have_gitlab_http_status(200) expect(response).to have_gitlab_http_status(200)
end end
it 'stores sorting param in a cookie' do context 'when user is logged in' do
get :show, group_id: group, sort: 'start_date_asc' it 'stores sorting param in a cookie' do
group.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
sign_out(user)
expect(cookies['epic_sort']).to eq('start_date_asc') get :show, group_id: group, sort: 'start_date_asc'
expect(response).to have_gitlab_http_status(200)
expect(cookies['epic_sort']).to eq('start_date_asc')
expect(response).to have_gitlab_http_status(200)
end
end
context 'when there is no user logged in' do
it 'stores sorting param in a cookie' do
get :show, group_id: group, sort: 'start_date_asc'
expect(response).to have_gitlab_http_status(200)
expect(user.reload.user_preference.epics_sort).to eq('start_date_asc')
end
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