require "test_helper" class Settings::PreferencesControllerTest < ActionDispatch::IntegrationTest setup do sign_in users(:family_admin) end test "get" do get settings_preferences_url assert_response :success end test "group moniker uses group currencies copy and hides legacy currency field" do users(:family_admin).family.update!(moniker: "Group") get settings_preferences_url assert_response :success assert_includes response.body, "Group Currencies" assert_includes response.body, "your group" assert_select "select[name='user[family_attributes][currency]']", count: 0 end test "renders beta features toggle for non-admin users too" do sign_in users(:family_member) get settings_preferences_url assert_response :success assert_includes response.body, "Enable beta features" end test "update toggles beta_features_enabled on" do user = users(:family_admin) assert_not user.beta_features_enabled? patch settings_preferences_url, params: { user: { beta_features_enabled: "1" } } assert_redirected_to settings_preferences_url assert user.reload.beta_features_enabled? end test "update toggles beta_features_enabled off" do user = users(:family_admin) user.update!(preferences: (user.preferences || {}).merge("beta_features_enabled" => true)) assert user.beta_features_enabled? patch settings_preferences_url, params: { user: { beta_features_enabled: "0" } } assert_redirected_to settings_preferences_url assert_not user.reload.beta_features_enabled? end end