0
0
Fork 0

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:
Eugen Rochko 2023-03-30 14:44:00 +02:00 committed by GitHub
parent e7c3e55874
commit a9b5598c97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 817 additions and 525 deletions

View file

@ -46,6 +46,7 @@ describe Api::V1::Accounts::CredentialsController do
end
it 'updates account info' do
user.reload
user.account.reload
expect(user.account.display_name).to eq("Alice Isn't Dead")

View file

@ -88,21 +88,19 @@ describe ApplicationController, type: :controller do
it 'returns instances\'s default theme when user didn\'t set theme' do
current_user = Fabricate(:user)
current_user.settings.update(theme: 'contrast', noindex: false)
current_user.save
sign_in current_user
allow(Setting).to receive(:[]).with('theme').and_return 'contrast'
allow(Setting).to receive(:[]).with('noindex').and_return false
expect(controller.view_context.current_theme).to eq 'contrast'
end
it 'returns user\'s theme when it is set' do
current_user = Fabricate(:user)
current_user.settings['theme'] = 'mastodon-light'
current_user.settings.update(theme: 'mastodon-light')
current_user.save
sign_in current_user
allow(Setting).to receive(:[]).with('theme').and_return 'contrast'
expect(controller.view_context.current_theme).to eq 'mastodon-light'
end
end

View file

@ -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

View file

@ -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