Commit 5b6db251 authored by Igor's avatar Igor Committed by Douglas Barbosa Alexandre

Consider array params on rendering MR list on dashboard

This fixes the bug, when approver filter is provided,
but dashboard asks to enter any filter
parent b99b6bb0
...@@ -46,7 +46,10 @@ class DashboardController < Dashboard::ApplicationController ...@@ -46,7 +46,10 @@ class DashboardController < Dashboard::ApplicationController
end end
def check_filters_presence! def check_filters_presence!
@no_filters_set = finder_type.scalar_params.none? { |k| params.key?(k) } no_scalar_filters_set = finder_type.scalar_params.none? { |k| params.key?(k) }
no_array_filters_set = finder_type.array_params.none? { |k, _| params.key?(k) }
@no_filters_set = no_scalar_filters_set && no_array_filters_set
return unless @no_filters_set return unless @no_filters_set
......
...@@ -53,7 +53,6 @@ class IssuableFinder ...@@ -53,7 +53,6 @@ class IssuableFinder
assignee_username assignee_username
author_id author_id
author_username author_username
label_name
milestone_title milestone_title
my_reaction_emoji my_reaction_emoji
search search
......
...@@ -117,7 +117,7 @@ describe IssuableCollections do ...@@ -117,7 +117,7 @@ describe IssuableCollections do
due_date: '2017-01-01', due_date: '2017-01-01',
group_id: '3', group_id: '3',
iids: '4', iids: '4',
label_name: 'foo', label_name: ['foo'],
milestone_title: 'bar', milestone_title: 'bar',
my_reaction_emoji: 'thumbsup', my_reaction_emoji: 'thumbsup',
non_archived: 'true', non_archived: 'true',
...@@ -142,7 +142,7 @@ describe IssuableCollections do ...@@ -142,7 +142,7 @@ describe IssuableCollections do
'author_id' => '2', 'author_id' => '2',
'author_username' => 'user2', 'author_username' => 'user2',
'confidential' => true, 'confidential' => true,
'label_name' => 'foo', 'label_name' => ['foo'],
'milestone_title' => 'bar', 'milestone_title' => 'bar',
'my_reaction_emoji' => 'thumbsup', 'my_reaction_emoji' => 'thumbsup',
'due_date' => '2017-01-01', 'due_date' => '2017-01-01',
......
...@@ -23,4 +23,37 @@ describe DashboardController do ...@@ -23,4 +23,37 @@ describe DashboardController do
it_behaves_like 'authenticates sessionless user', :issues, :atom, author_id: User.first it_behaves_like 'authenticates sessionless user', :issues, :atom, author_id: User.first
it_behaves_like 'authenticates sessionless user', :issues_calendar, :ics it_behaves_like 'authenticates sessionless user', :issues_calendar, :ics
describe "#check_filters_presence!" do
let(:user) { create(:user) }
before do
sign_in(user)
get :merge_requests, params: params
end
context "no filters" do
let(:params) { {} }
it 'sets @no_filters_set to false' do
expect(assigns[:no_filters_set]).to eq(true)
end
end
context "scalar filters" do
let(:params) { { author_id: user.id } }
it 'sets @no_filters_set to false' do
expect(assigns[:no_filters_set]).to eq(false)
end
end
context "array filters" do
let(:params) { { label_name: ['bug'] } }
it 'sets @no_filters_set to false' do
expect(assigns[:no_filters_set]).to eq(false)
end
end
end
end end
...@@ -44,6 +44,8 @@ describe 'Dashboard Merge Requests' do ...@@ -44,6 +44,8 @@ describe 'Dashboard Merge Requests' do
end end
context 'merge requests exist' do context 'merge requests exist' do
let(:label) { create(:label) }
let!(:assigned_merge_request) do let!(:assigned_merge_request) do
create(:merge_request, create(:merge_request,
assignee: current_user, assignee: current_user,
...@@ -72,6 +74,14 @@ describe 'Dashboard Merge Requests' do ...@@ -72,6 +74,14 @@ describe 'Dashboard Merge Requests' do
target_project: public_project, source_project: forked_project) target_project: public_project, source_project: forked_project)
end end
let!(:labeled_merge_request) do
create(:labeled_merge_request,
source_branch: 'labeled',
labels: [label],
author: current_user,
source_project: project)
end
let!(:other_merge_request) do let!(:other_merge_request) do
create(:merge_request, create(:merge_request,
source_branch: 'fix', source_branch: 'fix',
...@@ -90,6 +100,7 @@ describe 'Dashboard Merge Requests' do ...@@ -90,6 +100,7 @@ describe 'Dashboard Merge Requests' do
expect(page).not_to have_content(authored_merge_request.title) expect(page).not_to have_content(authored_merge_request.title)
expect(page).not_to have_content(authored_merge_request_from_fork.title) expect(page).not_to have_content(authored_merge_request_from_fork.title)
expect(page).not_to have_content(other_merge_request.title) expect(page).not_to have_content(other_merge_request.title)
expect(page).not_to have_content(labeled_merge_request.title)
end end
it 'shows authored merge requests', :js do it 'shows authored merge requests', :js do
...@@ -98,7 +109,21 @@ describe 'Dashboard Merge Requests' do ...@@ -98,7 +109,21 @@ describe 'Dashboard Merge Requests' do
expect(page).to have_content(authored_merge_request.title) expect(page).to have_content(authored_merge_request.title)
expect(page).to have_content(authored_merge_request_from_fork.title) expect(page).to have_content(authored_merge_request_from_fork.title)
expect(page).to have_content(labeled_merge_request.title)
expect(page).not_to have_content(assigned_merge_request.title)
expect(page).not_to have_content(assigned_merge_request_from_fork.title)
expect(page).not_to have_content(other_merge_request.title)
end
it 'shows labeled merge requests', :js do
reset_filters
input_filtered_search("label:#{label.name}")
expect(page).to have_content(labeled_merge_request.title)
expect(page).not_to have_content(authored_merge_request.title)
expect(page).not_to have_content(authored_merge_request_from_fork.title)
expect(page).not_to have_content(assigned_merge_request.title) expect(page).not_to have_content(assigned_merge_request.title)
expect(page).not_to have_content(assigned_merge_request_from_fork.title) expect(page).not_to have_content(assigned_merge_request_from_fork.title)
expect(page).not_to have_content(other_merge_request.title) expect(page).not_to have_content(other_merge_request.title)
......
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