Sha256: 0a9dc93a1569b152c8b08c30ee18fd136773b3947f8e256169cb96734858d390

Contents?: true

Size: 640 Bytes

Versions: 7

Compression:

Stored size: 640 Bytes

Contents

require 'spec_helper'

describe 'Using required attributes' do
  before do
    module Examples
      class User
        include Virtus.model(:strict => true)

        attribute :name, String
        attribute :age,  Integer, :required => false
      end
    end
  end

  it 'raises coercion error when required attribute is nil' do
    expect { Examples::User.new(:name => nil) }.to raise_error(Virtus::CoercionError)
  end

  it 'does not raise coercion error when not required attribute is nil' do
    user = Examples::User.new(:name => 'Jane', :age => nil)

    expect(user.name).to eql('Jane')
    expect(user.age).to be(nil)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
virtus-1.0.2 spec/integration/required_attributes_spec.rb
virtus-1.0.1 spec/integration/required_attributes_spec.rb
virtus-1.0.0 spec/integration/required_attributes_spec.rb
virtus-1.0.0.rc2 spec/integration/required_attributes_spec.rb
virtus-1.0.0.rc1 spec/integration/required_attributes_spec.rb
virtus-1.0.0.beta8 spec/integration/required_attributes_spec.rb
virtus-1.0.0.beta7 spec/integration/required_attributes_spec.rb