diff options
author | Christian Schmidt <github@chsc.dk> | 2023-03-31 07:33:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-31 07:33:17 +0200 |
commit | b4f38edf74e376f6006def9bf9fc22db40586264 (patch) | |
tree | 3500de87e7051ce60c4fc10ae1ef9f224648ccd3 /spec/models | |
parent | 68a192e7186733885b1d70160170c4772fab7242 (diff) |
Wrong type for user setting when default is defined by lambda (#24321)
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/user_settings/setting_spec.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/models/user_settings/setting_spec.rb b/spec/models/user_settings/setting_spec.rb index 6e4ec6789..9884ae4f8 100644 --- a/spec/models/user_settings/setting_spec.rb +++ b/spec/models/user_settings/setting_spec.rb @@ -30,6 +30,38 @@ RSpec.describe UserSettings::Setting do it 'returns a type' do expect(subject.type).to be_a ActiveModel::Type::Value end + + context 'when default value is a boolean' do + let(:default) { false } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::Boolean + end + end + + context 'when default value is a string' do + let(:default) { '' } + + it 'returns string' do + expect(subject.type).to be_a ActiveModel::Type::String + end + end + + context 'when default value is a lambda returning a boolean' do + let(:default) { -> { false } } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::Boolean + end + end + + context 'when default value is a lambda returning a string' do + let(:default) { -> { '' } } + + it 'returns boolean' do + expect(subject.type).to be_a ActiveModel::Type::String + end + end end describe '#type_cast' do |