diff --git a/app/controllers/topics_controller.rb b/app/controllers/topics_controller.rb index 1a0588dd689..adc60e0c940 100644 --- a/app/controllers/topics_controller.rb +++ b/app/controllers/topics_controller.rb @@ -1253,7 +1253,7 @@ class TopicsController < ApplicationController raise(SiteSetting.detailed_404 ? ex : Discourse::NotFound) end - opts = params.slice(:page, :print, :filter_top_level_replies) + opts = params.slice(:page, :print, :filter_top_level_replies, :preview_theme_id) opts.delete(:page) if params[:page] == 0 url = topic.relative_url diff --git a/spec/requests/topics_controller_spec.rb b/spec/requests/topics_controller_spec.rb index ea7db75a1eb..1ad6bf728f7 100644 --- a/spec/requests/topics_controller_spec.rb +++ b/spec/requests/topics_controller_spec.rb @@ -2177,7 +2177,7 @@ RSpec.describe TopicsController do it "preserves only select query params" do get "/t/external_id/asdf.json", params: { filter_top_level_replies: true } expect(response.status).to eq(301) - expect(response).to redirect_to(topic.relative_url + ".json?filter_top_level_replies=true") + expect(response).to redirect_to("#{topic.relative_url}.json?filter_top_level_replies=true") get "/t/external_id/asdf.json", params: { not_valid: true } expect(response.status).to eq(301) @@ -2186,13 +2186,18 @@ RSpec.describe TopicsController do get "/t/external_id/asdf.json", params: { filter_top_level_replies: true, post_number: 9999 } expect(response.status).to eq(301) expect(response).to redirect_to( - topic.relative_url + "/9999.json?filter_top_level_replies=true", + "#{topic.relative_url}/9999.json?filter_top_level_replies=true", ) - get "/t/external_id/asdf.json", params: { filter_top_level_replies: true, print: true } + get "/t/external_id/asdf.json", + params: { + filter_top_level_replies: true, + print: true, + preview_theme_id: 9999, + } expect(response.status).to eq(301) expect(response).to redirect_to( - topic.relative_url + ".json?print=true&filter_top_level_replies=true", + "#{topic.relative_url}.json?print=true&filter_top_level_replies=true&preview_theme_id=9999", ) end