Change user settings to be stored in a more optimal way (#23630)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
		@@ -20,20 +20,22 @@ describe Settings::Preferences::NotificationsController do
 | 
			
		||||
 | 
			
		||||
  describe 'PUT #update' do
 | 
			
		||||
    it 'updates notifications settings' do
 | 
			
		||||
      user.settings['notification_emails'] = user.settings['notification_emails'].merge('follow' => false)
 | 
			
		||||
      user.settings['interactions'] = user.settings['interactions'].merge('must_be_follower' => true)
 | 
			
		||||
      user.settings.update('notification_emails.follow': false, 'interactions.must_be_follower': true)
 | 
			
		||||
      user.save
 | 
			
		||||
 | 
			
		||||
      put :update, params: {
 | 
			
		||||
        user: {
 | 
			
		||||
          notification_emails: { follow: '1' },
 | 
			
		||||
          interactions: { must_be_follower: '0' },
 | 
			
		||||
          settings_attributes: {
 | 
			
		||||
            'notification_emails.follow': '1',
 | 
			
		||||
            'interactions.must_be_follower': '0',
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      expect(response).to redirect_to(settings_preferences_notifications_path)
 | 
			
		||||
      user.reload
 | 
			
		||||
      expect(user.settings['notification_emails']['follow']).to be true
 | 
			
		||||
      expect(user.settings['interactions']['must_be_follower']).to be false
 | 
			
		||||
      expect(user.settings['notification_emails.follow']).to be true
 | 
			
		||||
      expect(user.settings['interactions.must_be_follower']).to be false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -29,20 +29,22 @@ describe Settings::Preferences::OtherController do
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'updates user settings' do
 | 
			
		||||
      user.settings['boost_modal'] = false
 | 
			
		||||
      user.settings['delete_modal'] = true
 | 
			
		||||
      user.settings.update('web.reblog_modal': false, 'web.delete_modal': true)
 | 
			
		||||
      user.save
 | 
			
		||||
 | 
			
		||||
      put :update, params: {
 | 
			
		||||
        user: {
 | 
			
		||||
          setting_boost_modal: '1',
 | 
			
		||||
          setting_delete_modal: '0',
 | 
			
		||||
          settings_attributes: {
 | 
			
		||||
            'web.reblog_modal': '1',
 | 
			
		||||
            'web.delete_modal': '0',
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      expect(response).to redirect_to(settings_preferences_other_path)
 | 
			
		||||
      user.reload
 | 
			
		||||
      expect(user.settings['boost_modal']).to be true
 | 
			
		||||
      expect(user.settings['delete_modal']).to be false
 | 
			
		||||
      expect(user.settings['web.reblog_modal']).to be true
 | 
			
		||||
      expect(user.settings['web.delete_modal']).to be false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user