mirror of
https://github.com/kaminari/kaminari.git
synced 2022-11-09 13:44:37 -05:00
specs for mongoid scopes
This commit is contained in:
parent
3c567d246b
commit
5f3f73f99b
3 changed files with 59 additions and 0 deletions
52
spec/models/mongoid_spec.rb
Normal file
52
spec/models/mongoid_spec.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
||||
require 'mongoid'
|
||||
require File.expand_path('../../lib/kaminari/mongoid_extension', File.dirname(__FILE__))
|
||||
|
||||
describe Kaminari::MongoidExtension do
|
||||
before :all do
|
||||
class Developer
|
||||
include ::Mongoid::Document
|
||||
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
|
||||
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
|
|
@ -1,6 +1,7 @@
|
|||
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
||||
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
||||
require 'rails'
|
||||
require 'mongoid'
|
||||
require 'kaminari'
|
||||
|
||||
require File.join(File.dirname(__FILE__), 'fake_app')
|
||||
|
|
|
@ -38,3 +38,9 @@ RSpec::Matchers.define :contain_tag_old do |count|
|
|||
"expected #{count || 'any'} instance(s) of #{@klass.name} but was #{@count}"
|
||||
end
|
||||
end
|
||||
|
||||
RSpec::Matchers.define :skip do |num|
|
||||
match do |criteria|
|
||||
criteria.instance_variable_get('@options')[:skip] == num
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue