1
0
Fork 0
mirror of https://github.com/kaminari/kaminari.git synced 2022-11-09 13:44:37 -05:00
kaminari--kaminari/spec/models/mongoid_spec.rb

73 lines
2.1 KiB
Ruby
Raw Normal View History

2011-02-17 22:33:56 -05:00
require File.expand_path('../spec_helper', File.dirname(__FILE__))
require 'mongoid'
require File.expand_path('../../lib/kaminari/models/mongoid_extension', File.dirname(__FILE__))
2011-02-17 22:33:56 -05:00
describe Kaminari::MongoidExtension do
before :all do
class Developer
include ::Mongoid::Document
2011-02-24 08:04:06 -05:00
field :salary, :type => Integer
2011-02-17 22:33:56 -05:00
end
end
before do
stub(subject).count { 300 } # in order to avoid DB access...
end
describe '#page' do
context 'page 1' do
subject { Developer.page 1 }
it { should be_a Mongoid::Criteria }
its(:current_page) { should == 1 }
its(:limit_value) { should == 25 }
its(:num_pages) { should == 12 }
it { should skip(0) }
end
context 'page 2' do
subject { Developer.page 2 }
it { should be_a Mongoid::Criteria }
its(:current_page) { should == 2 }
its(:limit_value) { should == 25 }
its(:num_pages) { should == 12 }
it { should skip 25 }
end
context 'page "foobar"' do
subject { Developer.page 'foobar' }
it { should be_a Mongoid::Criteria }
its(:current_page) { should == 1 }
its(:limit_value) { should == 25 }
its(:num_pages) { should == 12 }
it { should skip 0 }
end
context 'with criteria before' do
2011-02-24 08:04:06 -05:00
subject { Developer.where(:salary => 1).page 2 }
its(:selector) { should == {:salary => 1} }
its(:current_page) { should == 2 }
its(:limit_value) { should == 25 }
its(:num_pages) { should == 12 }
it { should skip 25 }
end
context 'with criteria after' do
2011-02-24 08:04:06 -05:00
subject { Developer.page(2).where(:salary => 1) }
its(:selector) { should == {:salary => 1} }
its(:current_page) { should == 2 }
its(:limit_value) { should == 25 }
its(:num_pages) { should == 12 }
it { should skip 25 }
end
2011-02-17 22:33:56 -05:00
end
describe '#per' do
subject { Developer.page(2).per(10) }
it { should be_a Mongoid::Criteria }
its(:current_page) { should == 2 }
its(:limit_value) { should == 10 }
its(:num_pages) { should == 30 }
it { should skip 10 }
end
end