Sha256: bce3b0e2ec7883b5f60642aced846423201ebdff7ee2236bca150306b1fdd7fb

Contents?: true

Size: 1.63 KB

Versions: 3

Compression:

Stored size: 1.63 KB

Contents

require_relative '../../spec_helper'
require_relative 'spec_helper'

describe 'Inferred validations' do
  it "allow overriding a single error message" do
    custom_boat = Class.new do
      include DataMapper::Resource

      def self.name
        'Boat'
      end

      property :id,   DataMapper::Property::Serial
      property :name, String, :required => true, :message => "This boat must have name"
    end
    boat = custom_boat.new
    expect(boat).not_to be_valid
    expect(boat.errors.on(:name)).to eq [ 'This boat must have name' ]
  end

  it "has correct error messages" do
    custom_boat = Class.new do
      include DataMapper::Resource

      def self.name
        'Boat'
      end

      property :id,   DataMapper::Property::Serial
      property :name, String, :required => true, :length => 5..20, :format => /^[a-z]+$/,
               :messages => {
                 :presence => "This boat must have name",
                 :length => "Name must have at least 4 and at most 20 chars",
                 :format => "Please use only small letters"
               }
    end

    boat = custom_boat.new
    expect(boat).not_to be_valid
    expect(boat.errors.on(:name)).to eq [ 'This boat must have name' ]

    boat.name = "%%"
    expect(boat).not_to be_valid
    expect(boat.errors.on(:name)).to eq [
      'Name must have at least 4 and at most 20 chars',
      'Please use only small letters',
    ]

    boat.name = "%%asd"
    expect(boat).not_to be_valid
    expect(boat.errors.on(:name)).to eq [ 'Please use only small letters' ]

    boat.name = "superboat"
    expect(boat).to be_valid
    expect(boat.errors.on(:name)).to be_nil
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sbf-dm-validations-1.4.0 spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb
sbf-dm-validations-1.3.0 spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb
sbf-dm-validations-1.3.0.beta spec/integration/automatic_validation/custom_messages_for_inferred_validation_spec.rb