Sha256: aa0cfddc261de1dedd8e1578ce140d65f8213500b628bb010b573aeefb34ab67

Contents?: true

Size: 689 Bytes

Versions: 3

Compression:

Stored size: 689 Bytes

Contents

RSpec.describe Schema, 'using generic rules' do
  subject(:validate) { schema.new }

  let(:schema) do
    Class.new(Schema) do
      def self.messages
        Messages.default.merge(
          en: { errors: { destiny: 'you must select either red or blue' } }
        )
      end

      optional(:red, &:filled?)
      optional(:blue, &:filled?)

      rule(:destiny) { rule(:red) | rule(:blue) }
    end
  end

  it 'passes when only red is filled' do
    expect(validate.(red: '1')).to be_empty
  end

  it 'fails when red and blue are not filled ' do
    expect(validate.(red: '', blue: '').messages[:destiny]).to eql(
      [['you must select either red or blue'], '']
    )
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dry-validation-0.5.0 spec/integration/schema/check_rules_spec.rb
dry-validation-0.4.1 spec/integration/schema/check_rules_spec.rb
dry-validation-0.4.0 spec/integration/schema/check_rules_spec.rb