From 9e166f797ae9160871269c152a1527c61904dbe5 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 17 May 2025 15:57:30 +0300 Subject: [PATCH] Copy languages input to advanced preferences form --- .../preferences/advanced_preferences_controller.rb | 3 ++- .../preferences/advanced_preferences/show.html.erb | 2 ++ .../advanced_preferences_controller_test.rb | 14 ++++++++++++++ test/system/preferences_test.rb | 10 ++++++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/controllers/preferences/advanced_preferences_controller.rb b/app/controllers/preferences/advanced_preferences_controller.rb index 9fab9d7ec..eae9949fc 100644 --- a/app/controllers/preferences/advanced_preferences_controller.rb +++ b/app/controllers/preferences/advanced_preferences_controller.rb @@ -3,7 +3,8 @@ module Preferences private def update_preferences - true + current_user.languages = params[:user][:languages].split(",") + current_user.save end end end diff --git a/app/views/preferences/advanced_preferences/show.html.erb b/app/views/preferences/advanced_preferences/show.html.erb index 69775bbeb..62e37f3e5 100644 --- a/app/views/preferences/advanced_preferences/show.html.erb +++ b/app/views/preferences/advanced_preferences/show.html.erb @@ -6,5 +6,7 @@ <% end %> <%= bootstrap_form_for current_user, :url => { :action => :update } do |f| %> + <%= f.text_field :languages %> + <%= f.primary t(".save") %> <% end %> diff --git a/test/controllers/preferences/advanced_preferences_controller_test.rb b/test/controllers/preferences/advanced_preferences_controller_test.rb index e446bbea4..146298b0e 100644 --- a/test/controllers/preferences/advanced_preferences_controller_test.rb +++ b/test/controllers/preferences/advanced_preferences_controller_test.rb @@ -14,5 +14,19 @@ module Preferences { :controller => "preferences/advanced_preferences", :action => "update" } ) end + + def test_update_languages + user = create(:user, :languages => []) + session_for(user) + + put advanced_preferences_path, :params => { :user => { :preferred_editor => "id", :languages => "fr es en" } } + + assert_redirected_to advanced_preferences_path + follow_redirect! + assert_template :show + assert_select ".alert-success", /^Préférences mises à jour/ + user.reload + assert_equal %w[fr es en], user.languages + end end end diff --git a/test/system/preferences_test.rb b/test/system/preferences_test.rb index 151f551e1..ab720ac83 100644 --- a/test/system/preferences_test.rb +++ b/test/system/preferences_test.rb @@ -19,4 +19,14 @@ class PreferencesTest < ApplicationSystemTestCase assert_content "Préférences mises à jour" end + + test "flash message shows in new language on advanced page" do + sign_in_as(create(:user)) + + visit advanced_preferences_path + fill_in "Preferred Languages", :with => "fr" + click_on "Update Preferences" + + assert_content "Préférences mises à jour" + end end -- 2.39.5