Sha256: e44256c6f77cfc06012ed24301dbbc435c3ec068c7c22bf3e3d815b7a370f20d

Contents?: true

Size: 1.45 KB

Versions: 83

Compression:

Stored size: 1.45 KB

Contents

require 'spec_helper'

describe Tenon::User do
  let(:user) { Tenon::User.new }

  ['Admin', 'Super Admin', 'Contributor', 'Member'].each do |role|
    describe "is_#{role.dehumanize}?" do
      context "when the user has the role of #{role}" do
        let(:role) { double }
        before do
          Tenon::Role.stub(:find_by_title) { role }
          user.stub(:roles) { [role] }
        end

        it 'should be true' do
          expect(user.send("is_#{role.dehumanize}?")).to be_true
        end
      end

      context "when the user has the role of #{role}" do
        let(:role) { double }
        before do
          Tenon::Role.stub(:find_by_title) { role }
          user.stub(:roles) { [] }
        end

        it 'should not be true' do
          expect(user.send("is_#{role.dehumanize}?")).not_to be_true
        end
      end
    end
  end

  describe '#as_json' do
    it 'should include the is_admin? method' do
      expect(Tenon::User.new.as_json.keys).to include('is_admin?')
    end
  end

  describe '#staff?' do
    %w(is_super_admin? is_admin? is_contributor?).each do |role|
      context "when user #{role}" do
        before do
          user.stub(role) { true }
        end

        it 'should be true' do
          expect(user.staff?).to be_true
        end
      end
    end

    context 'when user is not a super_admin, admin, or contributor' do
      it 'should not be true' do
        expect(user.staff?).not_to be_true
      end
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
tenon-1.1.8 spec/models/tenon/user_spec.rb
tenon-1.1.7 spec/models/tenon/user_spec.rb
tenon-1.1.6 spec/models/tenon/user_spec.rb
tenon-1.1.5 spec/models/tenon/user_spec.rb
tenon-1.1.4 spec/models/tenon/user_spec.rb
tenon-1.1.3 spec/models/tenon/user_spec.rb
tenon-1.1.2 spec/models/tenon/user_spec.rb
tenon-1.1.1 spec/models/tenon/user_spec.rb
tenon-1.0.76 spec/models/tenon/user_spec.rb
tenon-1.0.75 spec/models/tenon/user_spec.rb
tenon-1.0.74 spec/models/tenon/user_spec.rb
tenon-1.0.73 spec/models/tenon/user_spec.rb
tenon-1.0.72 spec/models/tenon/user_spec.rb
tenon-1.0.71 spec/models/tenon/user_spec.rb
tenon-1.0.70 spec/models/tenon/user_spec.rb
tenon-1.0.69 spec/models/tenon/user_spec.rb
tenon-1.0.68 spec/models/tenon/user_spec.rb
tenon-1.0.67 spec/models/tenon/user_spec.rb
tenon-1.0.66 spec/models/tenon/user_spec.rb
tenon-1.0.65 spec/models/tenon/user_spec.rb