Sha256: 8d5ee6b6b65a8cf04ed2ae37c992e74f63bce12e766016b366cb00e7dad12cf2

Contents?: true

Size: 1.16 KB

Versions: 35

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

describe Quby::ArrayAttributeValidValidator do
  class self::Invalid
    include ActiveModel::Model
    attr_accessor :required
    validates :required, presence: true
  end

  let(:invalid_model) { self.class::Invalid.new }

  class self::TestValidatesAttributeArrayClass
    include ActiveModel::Model

    attr_accessor :test1
    validates :test1, 'quby/array_attribute_valid': true
  end

  let(:test_class) do
    self.class::TestValidatesAttributeArrayClass
  end

  it 'runs validations for given array attributes and composits their errors on the model' do
    errors = test_class.new(test1: [invalid_model, invalid_model]).tap(&:valid?).errors
    expect(errors.full_messages).to eq(["Test1 element #0 Required moet opgegeven zijn",
                                        "Test1 element #1 Required moet opgegeven zijn"])
  end

  it 'does not add errors when valid' do
    expect(test_class.new).to be_valid
  end

  it 'treats non validatable elements as invalid' do
    subject = test_class.new(test1: [1000])
    expect(subject).to_not be_valid
    expect(subject.errors.full_messages).to eq(["Test1 element #0 does not respond_to valid?"])
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
quby-5.6.7 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.6 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.5 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.3 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.2 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.1 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.6.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.5.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.4.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.3.1 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.3.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.2.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.1.3 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.1.2 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.1.1 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.1.0 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.0.5 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.0.4 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.0.3 spec/active_model_modules/array_attribute_valid_validator_spec.rb
quby-5.0.2 spec/active_model_modules/array_attribute_valid_validator_spec.rb