diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 19629600ae0..18a4f6e000f 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -193,6 +193,8 @@ class TagsController < ::ApplicationController end def search + params.require(:q) + clean_name = DiscourseTagging.clean_tag(params[:q]) category = params[:categoryId] ? Category.find_by_id(params[:categoryId]) : nil diff --git a/spec/requests/tags_controller_spec.rb b/spec/requests/tags_controller_spec.rb index 26bf9591706..a68977112b2 100644 --- a/spec/requests/tags_controller_spec.rb +++ b/spec/requests/tags_controller_spec.rb @@ -428,6 +428,15 @@ describe TagsController do json = ::JSON.parse(response.body) expect(json["results"].map { |j| j["id"] }).to eq(['тема-в-разработке']) end + + context 'when tag query parameter is not provided' do + it 'does not cause a 500 error, returns a param required message' do + get "/tags/filter/search.json", params: {} + expect(response.status).to eq(400) + json = ::JSON.parse(response.body) + expect(json['errors']).to include('param is missing or the value is empty: q') + end + end end end