mirror of
https://github.com/discourse/discourse.git
synced 2025-04-15 08:00:53 +08:00
FIX: Search by topic_id should not be restricted by SiteSetting.min_search_term_length
.
This commit is contained in:
parent
96267f0845
commit
e3ac6585bd
@ -52,7 +52,8 @@ class SearchController < ApplicationController
|
||||
search_args[:include_blurbs] = params[:include_blurbs] == "true" if params[:include_blurbs].present?
|
||||
search_args[:search_for_id] = true if params[:search_for_id].present?
|
||||
|
||||
context,type = lookup_search_context
|
||||
context, type = lookup_search_context
|
||||
|
||||
if context
|
||||
search_args[:search_context] = context
|
||||
search_args[:type_filter] = type if type
|
||||
|
@ -201,7 +201,6 @@ class Search
|
||||
|
||||
# Query a term
|
||||
def execute
|
||||
|
||||
if SiteSetting.log_search_queries?
|
||||
status, search_log_id = SearchLog.log(
|
||||
term: @term,
|
||||
@ -212,7 +211,7 @@ class Search
|
||||
@results.search_log_id = search_log_id unless status == :error
|
||||
end
|
||||
|
||||
unless @filters.present?
|
||||
unless @filters.present? || @opts[:search_for_id]
|
||||
min_length = @opts[:min_search_term_length] || SiteSetting.min_search_term_length
|
||||
terms = (@term || '').split(/\s(?=(?:[^"]|"[^"]*")*$)/).reject {|t| t.length < min_length }
|
||||
|
||||
|
@ -37,25 +37,43 @@ describe SearchController do
|
||||
expect(data['users'][0]['id']).to eq(user.id)
|
||||
end
|
||||
|
||||
it "can search for id" do
|
||||
user = Fabricate(:user)
|
||||
my_post = Fabricate(:post, raw: "#{user.username} is a cool person")
|
||||
xhr(
|
||||
:get,
|
||||
:query,
|
||||
term: my_post.topic_id,
|
||||
type_filter: 'topic',
|
||||
search_for_id: true
|
||||
)
|
||||
expect(response).to be_success
|
||||
data = JSON.parse(response.body)
|
||||
unless (data && data['topics'] && data['topics'][0] && data['topics'][0]['id'])
|
||||
puts "FLAKY TEST"
|
||||
p data
|
||||
p my_post.topic
|
||||
p my_post
|
||||
context 'searching by topic id' do
|
||||
it 'should not be restricted by minimum search term length' do
|
||||
SiteSetting.min_search_term_length = 20000
|
||||
|
||||
post = Fabricate(:post)
|
||||
|
||||
xhr(
|
||||
:get,
|
||||
:query,
|
||||
term: post.topic_id,
|
||||
type_filter: 'topic',
|
||||
search_for_id: true
|
||||
)
|
||||
|
||||
expect(response).to be_success
|
||||
data = JSON.parse(response.body)
|
||||
|
||||
expect(data['topics'][0]['id']).to eq(post.topic_id)
|
||||
end
|
||||
|
||||
it "should return the right result" do
|
||||
user = Fabricate(:user)
|
||||
my_post = Fabricate(:post, raw: "#{user.username} is a cool person")
|
||||
|
||||
xhr(
|
||||
:get,
|
||||
:query,
|
||||
term: my_post.topic_id,
|
||||
type_filter: 'topic',
|
||||
search_for_id: true
|
||||
)
|
||||
|
||||
expect(response).to be_success
|
||||
data = JSON.parse(response.body)
|
||||
|
||||
expect(data['topics'][0]['id']).to eq(my_post.topic_id)
|
||||
end
|
||||
expect(data['topics'][0]['id']).to eq(my_post.topic_id)
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user