Skip to content
Snippets Groups Projects
Unverified Commit b4f38edf authored by Christian Schmidt's avatar Christian Schmidt Committed by GitHub
Browse files

Wrong type for user setting when default is defined by lambda (#24321)

parent 68a192e7
No related branches found
No related tags found
No related merge requests found
...@@ -19,7 +19,8 @@ class UserSettings::Setting ...@@ -19,7 +19,8 @@ class UserSettings::Setting
end end
def type def type
if @default_value.is_a?(TrueClass) || @default_value.is_a?(FalseClass) case default_value
when TrueClass, FalseClass
ActiveModel::Type::Boolean.new ActiveModel::Type::Boolean.new
else else
ActiveModel::Type::String.new ActiveModel::Type::String.new
......
...@@ -30,6 +30,38 @@ RSpec.describe UserSettings::Setting do ...@@ -30,6 +30,38 @@ RSpec.describe UserSettings::Setting do
it 'returns a type' do it 'returns a type' do
expect(subject.type).to be_a ActiveModel::Type::Value expect(subject.type).to be_a ActiveModel::Type::Value
end 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 end
describe '#type_cast' do describe '#type_cast' do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment