mirror of
https://git.bsd.gay/fef/nyastodon.git
synced 2024-12-25 07:23:43 +01:00
Delegate some methods of User to @settings (#5706)
* Move some tests of User into Settings::ScopedSettings * Add a test for User@settings
This commit is contained in:
parent
7d7df877ef
commit
19e8b861a2
3 changed files with 42 additions and 72 deletions
|
@ -73,6 +73,10 @@ class User < ApplicationRecord
|
||||||
|
|
||||||
has_many :session_activations, dependent: :destroy
|
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?
|
def confirmed?
|
||||||
confirmed_at.present?
|
confirmed_at.present?
|
||||||
end
|
end
|
||||||
|
@ -136,42 +140,6 @@ class User < ApplicationRecord
|
||||||
settings.default_privacy || (account.locked? ? 'private' : 'public')
|
settings.default_privacy || (account.locked? ? 'private' : 'public')
|
||||||
end
|
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)
|
def token_for_app(a)
|
||||||
return nil if a.nil? || a.owner != self
|
return nil if a.nil? || a.owner != self
|
||||||
Doorkeeper::AccessToken
|
Doorkeeper::AccessToken
|
||||||
|
|
35
spec/lib/settings/scoped_settings_spec.rb
Normal file
35
spec/lib/settings/scoped_settings_spec.rb
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# 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
|
|
@ -177,27 +177,10 @@ RSpec.describe User, type: :model do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#setting_auto_play_gif' do
|
describe 'settings' do
|
||||||
it 'returns auto-play gif setting' do
|
it 'is instance of Settings::ScopedSettings' do
|
||||||
user = Fabricate(:user)
|
user = Fabricate(:user)
|
||||||
user.settings[:auto_play_gif] = false
|
expect(user.settings).to be_kind_of Settings::ScopedSettings
|
||||||
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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -219,22 +202,6 @@ RSpec.describe User, type: :model do
|
||||||
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
|
describe 'whitelist' do
|
||||||
around(:each) do |example|
|
around(:each) do |example|
|
||||||
old_whitelist = Rails.configuration.x.email_whitelist
|
old_whitelist = Rails.configuration.x.email_whitelist
|
||||||
|
|
Loading…
Reference in a new issue