8
8
)
9
9
10
10
shared_examples 'produces_correct_sql' do
11
- let ( :collection ) { Foo . all }
12
- let ( :per_page ) { 5 }
13
-
14
11
it 'produces correct sql for first page' do
15
12
paginated_sql = ApiPagination . paginate ( collection , per_page : per_page )
16
- . to_sql
13
+ . to_sql
17
14
expect ( paginated_sql ) . to eql ( Foo . limit ( per_page ) . offset ( 0 ) . to_sql )
18
15
end
19
16
end
20
17
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 }
26
21
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
28
36
end
29
- end
30
-
31
- if ApiPagination . config . paginator == :will_paginate
32
- require 'will_paginate/active_record'
33
37
34
- describe 'pagination with will_paginate ' do
38
+ context 'reification ' do
35
39
before do
36
- ApiPagination . config . paginator = :will_paginate
40
+ allow ( collection ) . to receive ( :table_name ) . and_return ( 'aaBB_CC_DD' )
37
41
end
38
42
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
40
46
end
41
- end
47
+ end
48
+
49
+
0 commit comments