FIX: Ensure correct locale is set during RenderEmpty responses

Follow-up to bcb0e623
This commit is contained in:
David Taylor 2020-07-28 22:20:38 +01:00
parent 74ab4f3bff
commit f25fa83b6d
No known key found for this signature in database
GPG Key ID: 46904C18B1D3F434
2 changed files with 9 additions and 2 deletions

View File

@ -110,7 +110,7 @@ class ApplicationController < ActionController::Base
class PluginDisabled < StandardError; end class PluginDisabled < StandardError; end
rescue_from RenderEmpty do rescue_from RenderEmpty do
render 'default/empty' with_resolved_locale { render 'default/empty' }
end end
rescue_from ArgumentError do |e| rescue_from ArgumentError do |e|

View File

@ -687,8 +687,9 @@ RSpec.describe ApplicationController do
end end
context "with a logged in user" do context "with a logged in user" do
let(:user) { Fabricate(:user, locale: :fr) }
before do before do
user = Fabricate(:user, locale: :fr)
sign_in(user) sign_in(user)
end end
@ -704,6 +705,12 @@ RSpec.describe ApplicationController do
expected_title = I18n.t("page_not_found.title", locale: :fr) expected_title = I18n.t("page_not_found.title", locale: :fr)
expect(response.body).to include(CGI.escapeHTML(expected_title)) expect(response.body).to include(CGI.escapeHTML(expected_title))
end end
it "serves a RenderEmpty page in the preferred locale" do
get "/u/#{user.username}/preferences/interface"
expect(response.status).to eq(200)
expect(response.body).to have_tag('script', with: { src: "/assets/locales/fr.js" })
end
end end
end end