Sha256: 1f7aec4baec8ca8a4004045ef0e733f304f4469377d3f6dd76175cfced502b0d

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'

describe PuppetForge::V3::User do
  before do
    stub_api_for(PuppetForge::V3::User) do |api|
      stub_fixture(api, :get, '/v3/users/puppetlabs')
      stub_fixture(api, :get, '/v3/users/absent')
    end
  end

  describe '::find' do
    let(:user) { PuppetForge::V3::User.find('puppetlabs') }
    let(:missing_user) { PuppetForge::V3::User.find('absent') }

    it 'can find users that exist' do
      expect(user.username).to eq('puppetlabs')
    end

    it 'returns nil for non-existent users' do
      expect(missing_user).to be_nil
    end
  end

  describe '#modules' do
    before do
      stub_api_for(PuppetForge::V3::Module) do |api|
        stub_fixture(api, :get, '/v3/modules?owner=puppetlabs')
      end
    end

    let(:user) { PuppetForge::V3::User.find('puppetlabs') }

    it 'should return a PaginatedCollection' do
      expect(user.modules).to be_a PuppetForge::V3::Base::PaginatedCollection
    end

    it 'should only return modules for the current user' do
      module_owners = user.modules.map(&:owner)
      expect(module_owners.group_by(&:username).keys).to eql(['puppetlabs'])
    end
  end

  describe 'instance properies' do
    let(:user) { PuppetForge::V3::User.find('puppetlabs') }

    example 'are easily accessible' do
      expect(user.created_at).to_not be nil
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
puppet_forge-1.0.6 spec/unit/forge/v3/user_spec.rb
puppet_forge-1.0.5 spec/unit/forge/v3/user_spec.rb