Sha256: 621d5a31d5ca513a654a0db6d97c414318631013c1d7210d1122452ef01b9eeb

Contents?: true

Size: 1.9 KB

Versions: 11

Compression:

Stored size: 1.9 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')

describe Pupa::Concerns::Contactable do
  let :klass do
    Class.new do
      include Pupa::Model
      include Pupa::Concerns::Contactable
    end
  end

  let :object do
    klass.new
  end

  describe '#initialize' do
    it 'should initialize an empty ContactDetailList' do
      object.contact_details.should be_a(Pupa::ContactDetailList)
      object.contact_details.should == []
    end

    it 'should initialize the given ContactDetailList' do
      object = klass.new(contact_details: [{type: 'email', value: 'ceo@example.com', note: 'work'}])
      object.contact_details.should == [{type: 'email', value: 'ceo@example.com', note: 'work'}]
    end
  end

  describe '#contact_details=' do
    it 'should use coerce to a ContactDetailList' do
      object.contact_details = [{type: 'email', value: 'ceo@example.com', note: 'work'}]
      object.contact_details.should be_a(Pupa::ContactDetailList)
    end

    it 'should symbolize keys' do
      object.contact_details = [{'type' => 'email', 'value' => 'ceo@example.com', 'note' => 'work'}]
      object.contact_details.should == [{type: 'email', value: 'ceo@example.com', note: 'work'}]
    end
  end

  describe '#add_contact_detail' do
    it 'should add a contact detail' do
      object.add_contact_detail('email', 'ceo@example.com', note: 'work')
      object.contact_details.should == [{type: 'email', value: 'ceo@example.com', note: 'work'}]
    end

    it 'should not add a contact detail without a type' do
      object.add_contact_detail(nil, 'ceo@example.com')
      object.add_contact_detail('', 'ceo@example.com')
      object.contact_details.blank?.should == true
    end

    it 'should not add a contact detail without a value' do
      object.add_contact_detail('email', nil)
      object.add_contact_detail('email', '')
      object.contact_details.blank?.should == true
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pupa-0.1.7 spec/models/concerns/contactable_spec.rb
pupa-0.1.6 spec/models/concerns/contactable_spec.rb
pupa-0.1.5 spec/models/concerns/contactable_spec.rb
pupa-0.1.4 spec/models/concerns/contactable_spec.rb
pupa-0.1.3 spec/models/concerns/contactable_spec.rb
pupa-0.1.2 spec/models/concerns/contactable_spec.rb
pupa-0.1.1 spec/models/concerns/contactable_spec.rb
pupa-0.1.0 spec/models/concerns/contactable_spec.rb
pupa-0.0.13 spec/models/concerns/contactable_spec.rb
pupa-0.0.12 spec/models/concerns/contactable_spec.rb
pupa-0.0.11 spec/models/concerns/contactable_spec.rb