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
options = {
scope: params[:scope],
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
......@@ -113,6 +113,10 @@ module IssuableCollections
'opened'
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
return unless current_user
return unless issuable_sorting_field
......
......@@ -16,6 +16,8 @@ module EpicsActions
def update_cookie_value(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 'end_date_asc' then sort_value_end_date
else
......
......@@ -10,13 +10,17 @@ module Groups
# show roadmap for a group
def show
# 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
end
private
def issuable_sorting_field
:epics_sort
end
def persist_roadmap_layout
return unless current_user
......
......@@ -16,6 +16,7 @@ module EE
def epics_sort_options_hash
{
sort_value_created_date => sort_title_created_date,
sort_value_oldest_created => sort_title_created_date,
sort_value_recently_created => sort_title_created_date,
sort_value_oldest_updated => sort_title_recently_updated,
......
......@@ -31,12 +31,26 @@ describe Groups::RoadmapController do
expect(response).to have_gitlab_http_status(200)
end
context 'when user is logged in' do
it 'stores sorting param in a cookie' do
group.update!(visibility_level: Gitlab::VisibilityLevel::PUBLIC)
sign_out(user)
get :show, group_id: group, sort: 'start_date_asc'
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
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