reading_groups_helper_spec.rb 1.46 KB
require 'rails_helper'

describe ReadingGroupsHelper, :type => :helper do

  describe 'reading_group_owner?' do
    before :each do
      @subject = FactoryGirl.build(:reading_group, :with_id)
    end

    context 'returns false if not logged in' do
      before :each do
        helper.expects(:user_signed_in?).returns(false)
      end
      it { expect(helper.reading_groups_owner?(@subject.id)).to be_falsey }
    end

    context 'returns false if is not the owner' do
      before :each do
        helper.expects(:user_signed_in?).returns(true)
        helper.expects(:current_user).returns(FactoryGirl.build(:user))

        @ownerships = []
        @ownerships.expects(:find_by_reading_group_id).with(@subject.id).returns(nil)

        User.any_instance.expects(:reading_group_attributes).returns(@ownerships)
      end

      it { expect(helper.reading_groups_owner?(@subject.id)).to be_falsey }
    end

    context 'returns true if user is the reading_group owner' do
      before :each do
        helper.expects(:user_signed_in?).returns(true)
        helper.expects(:current_user).returns(FactoryGirl.build(:user))

        @ownership = FactoryGirl.build(:reading_group_attributes)
        @ownerships = []
        @ownerships.expects(:find_by_reading_group_id).with(@subject.id).returns(@ownership)
        User.any_instance.expects(:reading_group_attributes).returns(@ownerships)
      end

      it { expect(helper.reading_groups_owner?(@subject.id)).to be_truthy }
    end
  end

end