Sha256: b5ee3af094ad03ea8c533c71c64f10a07dc628ef62e7119306bcf5fd4d9cd785
Contents?: true
Size: 878 Bytes
Versions: 19
Compression:
Stored size: 878 Bytes
Contents
RSpec.describe Dry::Validation::Schema, 'defining schema using dry struct' do before do Dry::Validation.load_extensions(:struct) end subject(:schema) do Dry::Validation.Schema do required(:person).filled(Test::Person) end end before do class Test::Name < Dry::Struct::Value attribute :given_name, Dry::Types['strict.string'] attribute :family_name, Dry::Types['strict.string'] end class Test::Person < Dry::Struct::Value attribute :name, Test::Name end end it 'handles nested structs' do expect(schema.call(person: { name: { given_name: 'Tim', family_name: 'Cooper' } })).to be_success end it 'fails when input is not valid' do expect(schema.call(person: { name: { given_name: 'Tim' } }).messages).to eq( person: { name: { family_name: ['is missing', 'must be String'] } } ) end end
Version data entries
19 entries across 19 versions & 1 rubygems