mirror of
https://github.com/mastodon/mastodon
synced 2024-12-26 04:28:15 +09:00
36 lines
999 B
Ruby
36 lines
999 B
Ruby
|
# 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
|