Sha256: 657311dc9c90a8144dc976ad1da1710e1f6dfaf38b272bc97153bfec9c7af1e5

Contents?: true

Size: 1.15 KB

Versions: 35

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

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

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

  class self::TestValidatesAttributeClass
    include ActiveModel::Model

    attr_accessor :test1, :test2
    validates :test1, 'quby/attribute_valid': true
    validates :test2, 'quby/attribute_valid': true
  end

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

  it 'runs validations for given attributes and composits their errors on the model' do
    errors = test_class.new(test1: invalid_model,
                            test2: invalid_model).tap(&:valid?).errors
    expect(errors.full_messages).to eq(["Test1 Required moet opgegeven zijn", "Test2 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 attributes as invalid' do
    subject = test_class.new(test1: 1000)
    expect(subject).to_not be_valid
    expect(subject.errors.full_messages).to eq(["Test1 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/attribute_valid_validator_spec.rb
quby-5.6.6 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.6.5 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.6.3 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.6.2 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.6.1 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.6.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.5.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.4.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.3.1 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.3.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.2.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.1.3 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.1.2 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.1.1 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.1.0 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.0.5 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.0.4 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.0.3 spec/active_model_modules/attribute_valid_validator_spec.rb
quby-5.0.2 spec/active_model_modules/attribute_valid_validator_spec.rb