From 403c8941a6ffeb39bd796c0591ca999b6babc0ca Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 21 Jul 2021 18:44:24 +0100 Subject: [PATCH 1/1] Ensure that flash message is shown in the updated language --- app/controllers/preferences_controller.rb | 3 ++- .../_update_success_flash.html.erb | 1 + config/locales/en.yml | 3 ++- test/system/preferences_test.rb | 23 +++++++++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 app/views/preferences/_update_success_flash.html.erb create mode 100644 test/system/preferences_test.rb diff --git a/app/controllers/preferences_controller.rb b/app/controllers/preferences_controller.rb index 6839bf37a..e098a8acc 100644 --- a/app/controllers/preferences_controller.rb +++ b/app/controllers/preferences_controller.rb @@ -22,7 +22,8 @@ class PreferencesController < ApplicationController params[:user][:preferred_editor] end if current_user.save - flash[:notice] = t ".success" + # Use a partial so that it is rendered during the next page load in the correct language. + flash[:notice] = { :partial => "preferences/update_success_flash" } redirect_to preferences_path else flash[:error] = t ".failure" diff --git a/app/views/preferences/_update_success_flash.html.erb b/app/views/preferences/_update_success_flash.html.erb new file mode 100644 index 000000000..8fd1095ac --- /dev/null +++ b/app/views/preferences/_update_success_flash.html.erb @@ -0,0 +1 @@ +<%= t ".message" %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 1ef7db9c4..fcfb2bc89 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1655,8 +1655,9 @@ en: save: Update Preferences cancel: Cancel update: - success: Preferences updated. failure: Couldn't update preferences. + update_success_flash: + message: Preferences updated. profiles: edit: title: Edit Profile diff --git a/test/system/preferences_test.rb b/test/system/preferences_test.rb new file mode 100644 index 000000000..e5bcd1092 --- /dev/null +++ b/test/system/preferences_test.rb @@ -0,0 +1,23 @@ +require "application_system_test_case" + +class PreferencesTest < ApplicationSystemTestCase + def test_flash_message_shows_in_original_language + sign_in_as(create(:user)) + + visit edit_preferences_path + click_on "Update Preferences" + + assert page.has_content?("Preferences updated") + end + + def test_flash_message_shows_in_new_language + sign_in_as(create(:user)) + + visit edit_preferences_path + fill_in "Preferred Languages", :with => "fr" + click_on "Update Preferences" + + # TODO: enable with french translation when that's available + # assert page.has_content?("Préférences mises à jour") # rubocop:disable Style/AsciiComments + end +end -- 2.39.5