Sha256: 3d06f9a6ac36a0feae9c44a085f027dc45cf1caf71d3a36ef52442bcd5ddd465

Contents?: true

Size: 764 Bytes

Versions: 3

Compression:

Stored size: 764 Bytes

Contents

require 'dry/validation/hint_compiler'

RSpec.describe HintCompiler, '#call' do
  subject(:compiler) { HintCompiler.new(Messages.default, rules: rules) }

  let(:rules) do
    [
      [
        :and, [
          [:key, [:age, [:predicate, [:key?, []]]]],
          [
            :or, [
              [:val, [:age, [:predicate, [:none?, []]]]],
              [
                :and, [
                  [:val, [:age, [:predicate, [:int?, []]]]],
                  [:val, [:age, [:predicate, [:gt?, [18]]]]]
                ]
              ]
            ]
          ]
        ]
      ]
    ]
  end

  it 'returns hint messages for given rules' do
    expect(compiler.call).to eql(
      age: ['age must be an integer', 'age must be greater than 18']
    )
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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