|
3 | 3 | describe AjaxDatatablesRails::Datatable::Datatable do |
4 | 4 |
|
5 | 5 | let(:datatable) { ComplexDatatable.new(sample_params).datatable } |
6 | | - let(:order_option) { {'0'=>{'column'=>'0', 'dir'=>'asc'}, '1'=>{'column'=>'1', 'dir'=>'desc'}} } |
7 | 6 |
|
8 | 7 | describe 'order methods' do |
| 8 | + let(:order_option) { {'0'=>{'column'=>'0', 'dir'=>'asc'}, '1'=>{'column'=>'1', 'dir'=>'desc'}} } |
| 9 | + |
9 | 10 | it 'should be orderable' do |
10 | 11 | expect(datatable.orderable?).to eq(true) |
11 | 12 | end |
|
62 | 63 | end |
63 | 64 |
|
64 | 65 | describe 'option methods' do |
65 | | - before :each do |
66 | | - datatable.options[:start] = '50' |
67 | | - datatable.options[:length] = '15' |
| 66 | + describe '#paginate?' do |
| 67 | + it { |
| 68 | + expect(datatable.paginate?).to be(true) |
| 69 | + } |
68 | 70 | end |
69 | 71 |
|
70 | | - it 'paginate?' do |
71 | | - expect(datatable.paginate?).to be(true) |
72 | | - end |
| 72 | + describe '#per_page' do |
| 73 | + context 'when params[:length] is missing' do |
| 74 | + it 'defaults to 10' do |
| 75 | + expect(datatable.per_page).to eq(10) |
| 76 | + end |
| 77 | + end |
| 78 | + |
| 79 | + context 'when params[:length] is passed' do |
| 80 | + let(:datatable) { ComplexDatatable.new({ length: '20' }).datatable } |
73 | 81 |
|
74 | | - it 'offset' do |
75 | | - expect(datatable.offset).to eq(50) |
| 82 | + it 'matches the value on view params[:length]' do |
| 83 | + expect(datatable.per_page).to eq(20) |
| 84 | + end |
| 85 | + end |
76 | 86 | end |
77 | 87 |
|
78 | | - it 'page' do |
79 | | - expect(datatable.page).to eq(4) |
| 88 | + describe '#offset' do |
| 89 | + context 'when params[:start] is missing' do |
| 90 | + it 'defaults to 0' do |
| 91 | + expect(datatable.offset).to eq(0) |
| 92 | + end |
| 93 | + end |
| 94 | + |
| 95 | + context 'when params[:start] is passed' do |
| 96 | + let(:datatable) { ComplexDatatable.new({ start: '11' }).datatable } |
| 97 | + |
| 98 | + it 'matches the value on view params[:start]' do |
| 99 | + expect(datatable.offset).to eq(11) |
| 100 | + end |
| 101 | + end |
80 | 102 | end |
81 | 103 |
|
82 | | - it 'per_page' do |
83 | | - expect(datatable.per_page).to eq(15) |
| 104 | + describe '#page' do |
| 105 | + let(:datatable) { ComplexDatatable.new({ start: '11' }).datatable } |
| 106 | + |
| 107 | + it 'calculates page number from params[:start] and #per_page' do |
| 108 | + expect(datatable.page).to eq(2) |
| 109 | + end |
84 | 110 | end |
85 | 111 | end |
86 | 112 | end |
0 commit comments