Sha256: 9fdf30846801e7bf9a710faf00d9f523bfde0186f93d8bb846db4137289941a9
Contents?: true
Size: 1.47 KB
Versions: 6
Compression:
Stored size: 1.47 KB
Contents
require 'volt/models' class TestModel < Volt::Model validate :name, length: 4 validate :description, length: { message: 'needs to be longer', length: 50 } validate :username, presence: true end describe Volt::Model do it 'should validate the name' do expect(TestModel.new.errors).to eq( name: ['must be at least 4 characters'], description: ['needs to be longer'], username: ['must be specified'] ) end it 'should show marked validations once they are marked' do model = TestModel.new expect(model.marked_errors).to eq({}) model.mark_field!(:name) expect(model.marked_errors).to eq( name: ['must be at least 4 characters'] ) end it 'should show all fields in marked errors once saved' do model = TestModel.new expect(model.marked_errors).to eq({}) model.save! expect(model.marked_errors.keys).to eq([:name, :description, :username]) end describe 'length' do it 'should allow custom errors on length' do model = TestModel.new expect(model.marked_errors).to eq({}) model.mark_field!(:description) expect(model.marked_errors).to eq( description: ['needs to be longer'] ) end end describe 'presence' do it 'should validate presence' do model = TestModel.new expect(model.marked_errors).to eq({}) model.mark_field!(:username) expect(model.marked_errors).to eq( username: ['must be specified'] ) end end end
Version data entries
6 entries across 6 versions & 1 rubygems