Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `README.md`:
  Upstream added a link to the roadmap, but we have a completely different README.
  Kept ours.
- `app/models/media_attachment.rb`:
  Upstream upped media attachment limits.
  Updated the default according to upstream's.
- `db/migrate/20180831171112_create_bookmarks.rb`:
  Upstream changed the migration compatibility level.
  Did so too.
- `config/initializers/content_security_policy.rb`:
  Upstream refactored this file but we have a different version.
  Kept our version.
- `app/controllers/settings/preferences_controller.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  The file does not directly references individual settings anymore.
  Applied upstream changes.
- `app/lib/user_settings_decorator.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  The file got removed entirely.
  Removed it as well.
- `app/models/user.rb`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  References to individual settings have been removed from the file.
  Removed them as well.
- `app/views/settings/preferences/appearance/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `app/views/settings/preferences/notifications/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `app/views/settings/preferences/other/show.html.haml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  Applied upstream's changes and ported ours back.
- `config/settings.yml`:
  Upstream completely refactored user settings storage, and glitch-soc has a
  different set of settings.
  In particular, upstream removed user-specific and unused settings.
  Did the same in glitch-soc.
- `spec/controllers/application_controller_spec.rb`:
  Conflicts due to glitch-soc's theming system.
  Mostly kept our version, as upstream messed up the tests.
This commit is contained in:
Claire
2023-03-31 21:30:27 +02:00
341 changed files with 4055 additions and 2756 deletions

View File

@ -1,16 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Settings::Extend do
class User
include Settings::Extend
end
describe '#settings' do
it 'sets @settings as an instance of Settings::ScopedSettings' do
user = Fabricate(:user)
expect(user.settings).to be_a Settings::ScopedSettings
end
end
end

View File

@ -1,35 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Settings::ScopedSettings do
let(:object) { Fabricate(:user) }
let(:scoped_setting) { described_class.new(object) }
let(:val) { 'whatever' }
let(:methods) { %i(auto_play_gif default_sensitive unfollow_modal boost_modal delete_modal reduce_motion system_font_ui noindex theme) }
describe '.initialize' do
it 'sets @object' do
scoped_setting = described_class.new(object)
expect(scoped_setting.instance_variable_get(:@object)).to be object
end
end
describe '#method_missing' do
it 'sets scoped_setting.method_name = val' do
methods.each do |key|
scoped_setting.send("#{key}=", val)
expect(scoped_setting.send(key)).to eq val
end
end
end
describe '#[]= and #[]' do
it 'sets [key] = val' do
methods.each do |key|
scoped_setting[key] = val
expect(scoped_setting[key]).to eq val
end
end
end
end

View File

@ -1,84 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
describe UserSettingsDecorator do
describe 'update' do
let(:user) { Fabricate(:user) }
let(:settings) { described_class.new(user) }
it 'updates the user settings value for email notifications' do
values = { 'notification_emails' => { 'follow' => '1' } }
settings.update(values)
expect(user.settings['notification_emails']['follow']).to be true
end
it 'updates the user settings value for interactions' do
values = { 'interactions' => { 'must_be_follower' => '0' } }
settings.update(values)
expect(user.settings['interactions']['must_be_follower']).to be false
end
it 'updates the user settings value for privacy' do
values = { 'setting_default_privacy' => 'public' }
settings.update(values)
expect(user.settings['default_privacy']).to eq 'public'
end
it 'updates the user settings value for sensitive' do
values = { 'setting_default_sensitive' => '1' }
settings.update(values)
expect(user.settings['default_sensitive']).to be true
end
it 'updates the user settings value for unfollow modal' do
values = { 'setting_unfollow_modal' => '0' }
settings.update(values)
expect(user.settings['unfollow_modal']).to be false
end
it 'updates the user settings value for boost modal' do
values = { 'setting_boost_modal' => '1' }
settings.update(values)
expect(user.settings['boost_modal']).to be true
end
it 'updates the user settings value for delete toot modal' do
values = { 'setting_delete_modal' => '0' }
settings.update(values)
expect(user.settings['delete_modal']).to be false
end
it 'updates the user settings value for gif auto play' do
values = { 'setting_auto_play_gif' => '0' }
settings.update(values)
expect(user.settings['auto_play_gif']).to be false
end
it 'updates the user settings value for system font in UI' do
values = { 'setting_system_font_ui' => '0' }
settings.update(values)
expect(user.settings['system_font_ui']).to be false
end
it 'decoerces setting values before applying' do
values = {
'setting_delete_modal' => 'false',
'setting_boost_modal' => 'true',
}
settings.update(values)
expect(user.settings['delete_modal']).to be false
expect(user.settings['boost_modal']).to be true
end
end
end