Sha256: 986c50771de411b2e49890cc6c0636d31bde00e4c9820a2096aeb386ace6ac50

Contents?: true

Size: 891 Bytes

Versions: 1

Compression:

Stored size: 891 Bytes

Contents

RSpec.describe Dry::Validation, 'with custom messages' do
  subject(:validation) { schema.new }

  describe 'defining schema' do
    let(:schema) do
      Class.new(Dry::Validation::Schema) do
        configure do |config|
          config.messages_file = SPEC_ROOT.join('fixtures/errors.yml')
          config.namespace = :user
        end

        key(:email) { |email| email.filled? }
      end
    end

    let(:attrs) do
      {
        email: 'jane@doe.org',
        age: 19,
        address: { city: 'NYC', street: 'Street 1/2', country: { code: 'US', name: 'USA' } },
        phone_numbers: [
          '123456', '234567'
        ]
      }.freeze
    end

    describe '#messages' do
      it 'returns compiled error messages' do
        expect(validation.messages(attrs.merge(email: ''))).to eql([
          [:email, ["email can't be blank"]]
        ])
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dry-validation-0.1.0 spec/integration/custom_error_messages_spec.rb