Skip to content

Commit ab49d40

Browse files
author
philippmeissner
committed
added specs
1 parent af0a2b9 commit ab49d40

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,32 @@
387387
end
388388
end
389389

390+
describe 'Integer overflows' do
391+
let(:largest_postgresql_integer_value) { 2147483647 }
392+
let(:smallest_postgresql_integer_value) { -2147483648 }
393+
394+
before(:each) do
395+
create(:user, first_name: 'john', post_id: 1)
396+
create(:user, first_name: 'mary', post_id: 2)
397+
create(:user, first_name: 'phil', post_id: largest_postgresql_integer_value)
398+
end
399+
400+
it 'Returns an empty result if input value is too large' do
401+
datatable.params[:columns]['4'][:search][:value] = largest_postgresql_integer_value + 1
402+
expect(datatable.data.size).to eq 0
403+
end
404+
405+
it 'Returns an empty result if input value is too small' do
406+
datatable.params[:columns]['4'][:search][:value] = smallest_postgresql_integer_value - 1
407+
expect(datatable.data.size).to eq 0
408+
end
409+
410+
it 'returns the matching user' do
411+
datatable.params[:columns]['4'][:search][:value] = largest_postgresql_integer_value
412+
expect(datatable.data.size).to eq 1
413+
end
414+
end
415+
390416
describe 'it can filter records with condition :eq' do
391417
let(:datatable) { DatatableCondEq.new(view) }
392418

0 commit comments

Comments
 (0)