Sha256: 9853380a7a7da5968b38480f42219307930307dd0fe0cbd90bf5deb14d7bf6b7
Contents?: true
Size: 1.44 KB
Versions: 6
Compression:
Stored size: 1.44 KB
Contents
RSpec.describe Dry::Validation do subject(:validation) { schema.new } shared_context 'uses custom predicates' do it 'uses provided custom predicates' do expect(validation.(email: 'jane@doe')).to be_empty expect(validation.(email: nil)).to match_array([ [:error, [:input, [:email, nil, [[:val, [:email, [:predicate, [:filled?, []]]]]]]]] ]) expect(validation.(email: 'jane')).to match_array([ [:error, [:input, [:email, 'jane', [[:val, [:email, [:predicate, [:email?, []]]]]]]]] ]) end end describe 'defining schema with custom predicates container' do let(:schema) do Class.new(Dry::Validation::Schema) do configure do |config| config.predicates = Test::Predicates end key(:email) { |value| value.filled? & value.email? } end end before do module Test module Predicates include Dry::Validation::Predicates predicate(:email?) do |input| input.include?('@') # for the lols end end end end include_context 'uses custom predicates' end describe 'defining schema with custom predicate methods' do let(:schema) do Class.new(Dry::Validation::Schema) do key(:email) { |value| value.filled? & value.email? } def email?(value) value.include?('@') end end end include_context 'uses custom predicates' end end
Version data entries
6 entries across 6 versions & 1 rubygems