Commit bea159ab authored by Eugenia Grieff's avatar Eugenia Grieff Committed by Jan Provaznik

Remove feature flag board_search_optimization

- Update ListService to remove flag condition
- Update Specs
parent 52661728
...@@ -20,9 +20,6 @@ module Boards ...@@ -20,9 +20,6 @@ module Boards
skip_before_action :authenticate_user!, only: [:index] skip_before_action :authenticate_user!, only: [:index]
before_action :validate_id_list, only: [:bulk_move] before_action :validate_id_list, only: [:bulk_move]
before_action :can_move_issues?, only: [:bulk_move] before_action :can_move_issues?, only: [:bulk_move]
before_action do
push_frontend_feature_flag(:board_search_optimization, board.group, default_enabled: true)
end
def index def index
list_service = Boards::Issues::ListService.new(board_parent, current_user, filter_params) list_service = Boards::Issues::ListService.new(board_parent, current_user, filter_params)
......
...@@ -12,7 +12,7 @@ module Boards ...@@ -12,7 +12,7 @@ module Boards
def execute def execute
return fetch_issues.order_closed_date_desc if list&.closed? return fetch_issues.order_closed_date_desc if list&.closed?
fetch_issues.order_by_position_and_priority(with_cte: can_attempt_search_optimization?) fetch_issues.order_by_position_and_priority(with_cte: params[:search].present?)
end end
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
...@@ -91,7 +91,7 @@ module Boards ...@@ -91,7 +91,7 @@ module Boards
end end
def set_attempt_search_optimizations def set_attempt_search_optimizations
return unless can_attempt_search_optimization? return unless params[:search].present?
if board.group_board? if board.group_board?
params[:attempt_group_search_optimizations] = true params[:attempt_group_search_optimizations] = true
...@@ -130,11 +130,6 @@ module Boards ...@@ -130,11 +130,6 @@ module Boards
def board_group def board_group
board.group_board? ? parent : parent.group board.group_board? ? parent : parent.group
end end
def can_attempt_search_optimization?
params[:search].present? &&
Feature.enabled?(:board_search_optimization, board_group, default_enabled: true)
end
end end
end end
end end
......
...@@ -73,36 +73,14 @@ describe Boards::IssuesController do ...@@ -73,36 +73,14 @@ describe Boards::IssuesController do
end end
context 'with search param' do context 'with search param' do
context 'when board_search_optimization is enabled' do it 'returns matching issues using optimized search' do
before do create(:labeled_issue, project: project_1, labels: [planning], title: 'Test Issue')
stub_feature_flags(board_search_optimization: true) create(:labeled_issue, project: project_1, labels: [planning], title: 'Sample Issue')
end
it 'returns matching issues using optimized search' do
create(:labeled_issue, project: project_1, labels: [planning], title: 'Test Issue')
create(:labeled_issue, project: project_1, labels: [planning], title: 'Sample Issue')
list_issues user: user, board: board, list: list1, search: 'Te'
expect(response).to match_response_schema('issues')
expect(json_response['issues'].length).to eq 1
end
end
context 'when board_search_optimization is disabled' do
before do
stub_feature_flags(board_search_optimization: false)
end
it 'returns empty result' do
create(:labeled_issue, project: project_1, labels: [planning], title: 'Test Issue')
create(:labeled_issue, project: project_1, labels: [planning], title: 'Sample Issue')
list_issues user: user, board: board, list: list1, search: 'Te' list_issues user: user, board: board, list: list1, search: 'Te'
expect(response).to match_response_schema('issues') expect(response).to match_response_schema('issues')
expect(json_response['issues'].length).to eq 0 expect(json_response['issues'].length).to eq 1
end
end end
end end
end end
...@@ -131,36 +109,14 @@ describe Boards::IssuesController do ...@@ -131,36 +109,14 @@ describe Boards::IssuesController do
end end
context 'with search param' do context 'with search param' do
context 'when board_search_optimization is enabled' do it 'returns matching issues using optimized search' do
before do create(:issue, project: project_1, title: 'Issue XI')
stub_feature_flags(board_search_optimization: true) create(:issue, project: project_1, title: 'Issue XX')
end
it 'returns matching issues using optimized search' do
create(:issue, project: project_1, title: 'Issue XI')
create(:issue, project: project_1, title: 'Issue XX')
list_issues user: user, board: board, search: 'XI' list_issues user: user, board: board, search: 'XI'
expect(response).to match_response_schema('issues') expect(response).to match_response_schema('issues')
expect(json_response['issues'].length).to eq 1 expect(json_response['issues'].length).to eq 1
end
end
context 'when board_search_optimization is disabled' do
before do
stub_feature_flags(board_search_optimization: false)
end
it 'returns empty result' do
create(:issue, project: project_1, title: 'Issue XI')
create(:issue, project: project_1, title: 'Issue XX')
list_issues user: user, board: board, search: 'XI'
expect(response).to match_response_schema('issues')
expect(json_response['issues'].length).to eq 0
end
end end
end end
end end
......
...@@ -153,43 +153,18 @@ describe Boards::Issues::ListService, services: true do ...@@ -153,43 +153,18 @@ describe Boards::Issues::ListService, services: true do
end end
context 'when search param is present' do context 'when search param is present' do
shared_examples 'returns correct result using 3 characters' do it 'returns correct issues' do
it 'returns correct issues' do params = { board_id: board.id, search: 'Iss' }
params = { board_id: board.id, search: 'Iss' }
issues = described_class.new(parent, user, params).execute issues = described_class.new(parent, user, params).execute
expect(issues).to contain_exactly(opened_issue1, opened_issue2, reopened_issue1) expect(issues).to contain_exactly(opened_issue1, opened_issue2, reopened_issue1)
end
end
context 'when board_search_optimization feature is enabled' do
before do
stub_feature_flags(board_search_optimization: true)
end
it_behaves_like 'returns correct result using 3 characters'
it 'returns correct issues using 2 characters' do
params = { board_id: board.id, search: 'Is' }
issues = described_class.new(parent, user, params).execute
expect(issues).to contain_exactly(opened_issue1, opened_issue2, reopened_issue1)
end
end end
context 'when board_search_optimization feature is disabled' do it 'returns correct issues using 2 characters' do
before do params = { board_id: board.id, search: 'Is' }
stub_feature_flags(board_search_optimization: false)
end
it_behaves_like 'returns correct result using 3 characters'
it 'returns empty result using 2 characters' do issues = described_class.new(parent, user, params).execute
params = { board_id: board.id, search: 'Is' } expect(issues).to contain_exactly(opened_issue1, opened_issue2, reopened_issue1)
issues = described_class.new(parent, user, params).execute
expect(issues).to be_empty
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