Wrong type for user setting when default is defined by lambda (#24321)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							68a192e718
						
					
				
				
					commit
					b4f38edf74
				
			@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user