Sha256: a6540ee1dcaae60646a6f4ddcebdb6620746c427f5e514d123ea813b4ad4b73d

Contents?: true

Size: 828 Bytes

Versions: 6

Compression:

Stored size: 828 Bytes

Contents

require 'dry/validation/rule'

RSpec.describe Dry::Validation::Rule::Set do
  include_context 'predicates'

  subject(:rule) do
    Dry::Validation::Rule::Set.new(:address, [is_string, min_size.curry(6)])
  end

  let(:is_string) { Dry::Validation::Rule::Value.new(:name, str?) }
  let(:min_size) { Dry::Validation::Rule::Value.new(:name, min_size?) }

  describe '#call' do
    it 'applies its rules to the input' do
      expect(rule.('Address')).to be_success
      expect(rule.('Addr')).to be_failure
    end
  end

  describe '#to_ary' do
    it 'returns an array representation' do
      expect(rule).to match_array([
        :set, [
          :address, [
            [:val, [:name, [:predicate, [:str?, []]]]],
            [:val, [:name, [:predicate, [:min_size?, [6]]]]]
          ]
        ]
      ])
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dry-validation-0.4.1 spec/unit/rule/set_spec.rb
dry-validation-0.4.0 spec/unit/rule/set_spec.rb
dry-validation-0.3.1 spec/unit/rule/set_spec.rb
dry-validation-0.3.0 spec/unit/rule/set_spec.rb
dry-validation-0.2.0 spec/unit/rule/set_spec.rb
dry-validation-0.1.0 spec/unit/rule/set_spec.rb