BigW Consortium Gitlab

page_spec.rb 1.1 KB
Newer Older
Valery Sizov committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
require 'spec_helper'

describe Bitbucket::Page do
  let(:response) { { 'values' => [{ 'username' => 'Ben' }], 'pagelen' => 2, 'next' => '' } }

  before do
    # Autoloading hack
    Bitbucket::Representation::User.new({})
  end

  describe '#items' do
    it 'returns collection of needed objects' do
      page = described_class.new(response, :user)

      expect(page.items.first).to be_a(Bitbucket::Representation::User)
      expect(page.items.count).to eq(1)
    end
  end

  describe '#attrs' do
    it 'returns attributes' do
      page = described_class.new(response, :user)

      expect(page.attrs.keys).to include(:pagelen, :next)
    end
  end

  describe '#next?' do
    it 'returns true' do
      page = described_class.new(response, :user)

      expect(page.next?).to be_truthy
    end

    it 'returns false' do
      response['next'] = nil
      page = described_class.new(response, :user)

      expect(page.next?).to be_falsey
    end
  end

  describe '#next' do
    it 'returns next attribute' do
      page = described_class.new(response, :user)

      expect(page.next).to eq('')
    end
  end
end