Sha256: 83f63066ed268fbdc36b78b11d0a662152f81a051daef19f2d0d0e54de286696

Contents?: true

Size: 1.57 KB

Versions: 5

Compression:

Stored size: 1.57 KB

Contents

require 'spec_helper_models'

describe Gaku::Campus do

  describe 'concerns' do
    it_behaves_like 'contactable'
    it_behaves_like 'avatarable'
  end

  describe 'relations' do
    it { should belong_to :school }
    it { should have_one :address }
  end

  describe 'validations' do
    it { should validate_presence_of :name }
    it { should validate_presence_of :school }
  end

  describe '#primary_contact' do
    it('responds to primary_contact') { should respond_to(:primary_contact) }
  end

  describe '#to_s' do
    let(:campus) { build(:campus) }
    specify { campus.to_s.should eq campus.name }
  end

  context 'counter_cache' do

    let!(:campus) { create(:campus) }

    context 'addresses_count' do

      let(:address) { build(:address) }

      it 'increments addresses_count' do
        expect do
          campus.address = address
        end.to change { campus.reload.addresses_count }.by(1)
      end

      it 'decrements addresses_count' do
        campus.address = address
        expect do
          campus.address.destroy
        end.to change { campus.reload.addresses_count }.by(-1)
      end
    end

    context 'contacts_count' do

      let(:contact) { build(:contact) }

      it 'increments contacts_count' do
        expect do
          campus.contacts << contact
        end.to change { campus.reload.contacts_count }.by(1)
      end

      it 'decrements contacts_count' do
        campus.contacts << contact
        expect do
          campus.contacts.last.destroy
        end.to change { campus.reload.contacts_count }.by(-1)
      end
    end

  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gaku-0.2.4 core/spec/models/campus_spec.rb
gaku-0.2.3 core/spec/models/campus_spec.rb
gaku-0.2.2 core/spec/models/campus_spec.rb
gaku-0.2.1 core/spec/models/campus_spec.rb
gaku-0.2.0 core/spec/models/campus_spec.rb