88)
99
1010shared_examples 'produces_correct_sql' do
11- let ( :collection ) { Foo . all }
12- let ( :per_page ) { 5 }
13-
1411 it 'produces correct sql for first page' do
1512 paginated_sql = ApiPagination . paginate ( collection , per_page : per_page )
16- . to_sql
13+ . to_sql
1714 expect ( paginated_sql ) . to eql ( Foo . limit ( per_page ) . offset ( 0 ) . to_sql )
1815 end
1916end
2017
21- if ApiPagination . config . paginator == :kaminari
22- describe 'pagination with kaminari' do
23- before do
24- ApiPagination . config . paginator = :kaminari
25- end
18+ describe 'ActiveRecord Support' do
19+ let ( :collection ) { Foo . all }
20+ let ( :per_page ) { 5 }
2621
27- include_examples 'produces_correct_sql'
22+ if ApiPagination . config . paginator == :kaminari
23+ context 'pagination with kaminari' do
24+ before { ApiPagination . config . paginator = :kaminari }
25+ include_examples 'produces_correct_sql'
26+ end
27+ end
28+
29+ if ApiPagination . config . paginator == :will_paginate
30+ require 'will_paginate/active_record'
31+
32+ context 'pagination with will_paginate' do
33+ before { ApiPagination . config . paginator = :will_paginate }
34+ include_examples 'produces_correct_sql'
35+ end
2836 end
29- end
30-
31- if ApiPagination . config . paginator == :will_paginate
32- require 'will_paginate/active_record'
3337
34- describe 'pagination with will_paginate ' do
38+ context 'reification ' do
3539 before do
36- ApiPagination . config . paginator = :will_paginate
40+ allow ( collection ) . to receive ( :table_name ) . and_return ( 'aaBB_CC_DD' )
3741 end
3842
39- include_examples 'produces_correct_sql'
43+ it 'correctly produces the correct model independent of table name' do
44+ expect { ApiPagination . paginate ( collection ) } . not_to raise_error
45+ end
4046 end
41- end
47+ end
48+
49+
0 commit comments