has_many :session_activations, dependent: :destroy
+ delegate :auto_play_gif, :default_sensitive, :unfollow_modal, :boost_modal, :delete_modal,
+ :reduce_motion, :system_font_ui, :noindex, :theme,
+ to: :settings, prefix: :setting, allow_nil: false
+
def confirmed?
confirmed_at.present?
end
settings.default_privacy || (account.locked? ? 'private' : 'public')
end
- def setting_default_sensitive
- settings.default_sensitive
- end
-
- def setting_unfollow_modal
- settings.unfollow_modal
- end
-
- def setting_boost_modal
- settings.boost_modal
- end
-
- def setting_delete_modal
- settings.delete_modal
- end
-
- def setting_auto_play_gif
- settings.auto_play_gif
- end
-
- def setting_reduce_motion
- settings.reduce_motion
- end
-
- def setting_system_font_ui
- settings.system_font_ui
- end
-
- def setting_noindex
- settings.noindex
- end
-
- def setting_theme
- settings.theme
- end
-
def token_for_app(a)
return nil if a.nil? || a.owner != self
Doorkeeper::AccessToken
--- /dev/null
+# 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
end
end
- describe '#setting_auto_play_gif' do
- it 'returns auto-play gif setting' do
+ describe 'settings' do
+ it 'is instance of Settings::ScopedSettings' do
user = Fabricate(:user)
- user.settings[:auto_play_gif] = false
- expect(user.setting_auto_play_gif).to eq false
- end
- end
-
- describe '#setting_system_font_ui' do
- it 'returns system font ui setting' do
- user = Fabricate(:user)
- user.settings[:system_font_ui] = false
- expect(user.setting_system_font_ui).to eq false
- end
- end
-
- describe '#setting_boost_modal' do
- it 'returns boost modal setting' do
- user = Fabricate(:user)
- user.settings[:boost_modal] = false
- expect(user.setting_boost_modal).to eq false
+ expect(user.settings).to be_kind_of Settings::ScopedSettings
end
end
end
end
- describe '#setting_unfollow_modal' do
- it 'returns unfollow modal setting' do
- user = Fabricate(:user)
- user.settings[:unfollow_modal] = true
- expect(user.setting_unfollow_modal).to eq true
- end
- end
-
- describe '#setting_delete_modal' do
- it 'returns delete modal setting' do
- user = Fabricate(:user)
- user.settings[:delete_modal] = false
- expect(user.setting_delete_modal).to eq false
- end
- end
-
describe 'whitelist' do
around(:each) do |example|
old_whitelist = Rails.configuration.x.email_whitelist