diff --git a/app/finders/merge_requests_finder.rb b/app/finders/merge_requests_finder.rb index c998de75ab22e58d77e47d767378b40f8958633e..28b1530456baefab1ac979f2c43f588c258ece6b 100644 --- a/app/finders/merge_requests_finder.rb +++ b/app/finders/merge_requests_finder.rb @@ -66,6 +66,11 @@ def filter_items(_items) by_source_project_id(items) end + def filter_negated_items(items) + items = super(items) + by_negated_target_branch(items) + end + private def by_commit(items) @@ -98,6 +103,14 @@ def by_target_branch(items) end # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord + def by_negated_target_branch(items) + return items unless not_params[:target_branch] + + items.where.not(target_branch: not_params[:target_branch]) + end + # rubocop: enable CodeReuse/ActiveRecord + def source_project_id @source_project_id ||= params[:source_project_id].presence end diff --git a/changelogs/unreleased/ph-filterTargetBranchByNotEquals.yml b/changelogs/unreleased/ph-filterTargetBranchByNotEquals.yml new file mode 100644 index 0000000000000000000000000000000000000000..169bf3562890e93a09028b4326cca766431ce240 --- /dev/null +++ b/changelogs/unreleased/ph-filterTargetBranchByNotEquals.yml @@ -0,0 +1,5 @@ +--- +title: Fixed target branch not filtering +merge_request: 45652 +author: +type: fixed diff --git a/spec/features/merge_requests/user_filters_by_target_branch_spec.rb b/spec/features/merge_requests/user_filters_by_target_branch_spec.rb index 540d87eb969ee14df35d6078c813daf625044472..1d9c80238f57a45f0e25ad2abc0be15f0f96666d 100644 --- a/spec/features/merge_requests/user_filters_by_target_branch_spec.rb +++ b/spec/features/merge_requests/user_filters_by_target_branch_spec.rb @@ -44,4 +44,14 @@ expect(page).not_to have_content mr2.title end end + + context 'filtering by target-branch:!=master' do + it 'applies the filter' do + input_filtered_search('target-branch:!=master') + + expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1) + expect(page).not_to have_content mr1.title + expect(page).to have_content mr2.title + end + end end