Sha256: b8a3a0b6e8b3e25594f9005f4b2d5f4d83fe2d4d3d7dec3d1afdfeeedd96a62d

Contents?: true

Size: 1.82 KB

Versions: 19

Compression:

Stored size: 1.82 KB

Contents

require File.expand_path('../spec_helper', File.dirname(__FILE__))

describe Kaminari::ActiveRecord do
  before :all do
    User.delete_all
    1.upto(100) {|i| User.create! :name => "user#{'%03d' % i}" }
  end

  describe '#page' do
    shared_examples_for 'the first page' do
      it { should have(25).users }
      its('first.name') { should == 'user001' }
    end

    shared_examples_for 'blank page' do
      it { should have(0).users }
    end

    context 'page 1' do
      subject { User.page 1 }
      it_should_behave_like 'the first page'
    end

    context 'page 2' do
      subject { User.page 2 }
      it { should have(25).users }
      its('first.name') { should == 'user026' }
    end

    context 'page without an argument' do
      subject { User.page }
      it_should_behave_like 'the first page'
    end

    context 'page < 1' do
      subject { User.page 0 }
      it_should_behave_like 'the first page'
    end

    context 'page > max page' do
      subject { User.page 5 }
      it_should_behave_like 'blank page'
    end
  end

  describe '#per' do
    context 'page 1 per 5' do
      subject { User.page(1).per(5) }
      it { should have(5).users }
      its('first.name') { should == 'user001' }
    end
  end

  describe '#num_pages' do
    context 'per 25 (default)' do
      subject { User.page }
      its(:num_pages) { should == 4 }
    end

    context 'per 7' do
      subject { User.page(2).per(7) }
      its(:num_pages) { should == 15 }
    end

    context 'per 65536' do
      subject { User.page(50).per(65536) }
      its(:num_pages) { should == 1 }
    end
  end

  describe '#current_page' do
    context 'page 1' do
      subject { User.page }
      its(:current_page) { should == 1 }
    end

    context 'page 2' do
      subject { User.page(2).per 3 }
      its(:current_page) { should == 2 }
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
kaminari-0.9.9 spec/models/scopes_spec.rb
kaminari-0.9.8 spec/models/scopes_spec.rb
kaminari-0.9.7 spec/models/scopes_spec.rb
kaminari-0.9.6 spec/models/scopes_spec.rb
kaminari-0.9.5 spec/models/scopes_spec.rb
kaminari-0.9.4 spec/models/scopes_spec.rb
kaminari-0.9.3 spec/models/scopes_spec.rb
kaminari-0.9.2 spec/models/scopes_spec.rb
kaminari-0.9.1 spec/models/scopes_spec.rb
kaminari-0.9.0 spec/models/scopes_spec.rb
kaminari-0.8.0 spec/models/scopes_spec.rb
kaminari-0.7.0 spec/models/scopes_spec.rb
kaminari-0.6.1 spec/models/scopes_spec.rb
kaminari-0.6.0 spec/models/scopes_spec.rb
kaminari-0.5.0 spec/models/scopes_spec.rb
kaminari-0.4.0 spec/models/scopes_spec.rb
kaminari-0.3.0 spec/models/scopes_spec.rb
kaminari-0.2.1 spec/models/scopes_spec.rb
kaminari-0.2.0 spec/models/scopes_spec.rb