Sha256: 4f739169f20eb6ee866b0d3b6522abd341d99e3cc6e569b45ff6063dc5fafe39

Contents?: true

Size: 716 Bytes

Versions: 2

Compression:

Stored size: 716 Bytes

Contents

require 'dry/validation/predicate'

RSpec.describe Dry::Validation::Predicate do
  describe '#call' do
    it 'returns result of the predicate function' do
      is_empty = Dry::Validation::Predicate.new(:is_empty) { |str| str.empty? }

      expect(is_empty.('')).to be(true)

      expect(is_empty.('filled')).to be(false)
    end
  end

  describe '#curry' do
    it 'returns curried predicate' do
      min_age = Dry::Validation::Predicate.new(:min_age) { |age, input| input >= age }

      min_age_18 = min_age.curry(18)

      expect(min_age_18.args).to eql([18])

      expect(min_age_18.(18)).to be(true)
      expect(min_age_18.(19)).to be(true)
      expect(min_age_18.(17)).to be(false)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dry-validation-0.4.1 spec/unit/predicate_spec.rb
dry-validation-0.4.0 spec/unit/predicate_spec.rb