user_spec.rb 1.18 KB
require 'rails_helper'

describe User, :type => :model do
  context 'validations' do
    subject { FactoryGirl.build(:user) }

    it { is_expected.to validate_presence_of(:name) }
    it { is_expected.to validate_presence_of(:email) }
    it { is_expected.to validate_uniqueness_of(:email) }
  end

  describe 'associations' do
    it { is_expected.to have_many(:project_attributes).dependent(:destroy) }
    it { is_expected.to have_many(:reading_group_attributes).dependent(:destroy) }
    it { is_expected.to have_many(:kalibro_configuration_attributes).dependent(:destroy) }
    it { is_expected.to have_many(:repository_attributes).dependent(:destroy) }
  end

  describe 'methods' do
    describe 'projects' do
      subject { FactoryGirl.build(:user) }
      let(:project) {FactoryGirl.build(:project_with_id)}
      let(:project_attributes) {FactoryGirl.build(:project_attributes)}

      before :each do
        project_attributes.expects(:project).returns(project)
        subject.expects(:project_attributes).returns([project_attributes])
      end

      it 'should return a list of projects owned by the user' do
        expect(subject.projects).to eq([project])
      end
    end
  end
end