Skip to content

Commit

Permalink
Add test data for custom_field feature
Browse files Browse the repository at this point in the history
  • Loading branch information
n-rodriguez committed Feb 9, 2021
1 parent c8619f4 commit dd53c05
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 23 deletions.
4 changes: 2 additions & 2 deletions spec/ajax-datatables-rails/datatable/datatable_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
end

shared_examples 'columns methods' do
it 'has 4 columns' do
expect(datatable.columns.count).to eq(6)
it 'has 7 columns' do
expect(datatable.columns.count).to eq(7)
end

it 'child class' do
Expand Down
40 changes: 20 additions & 20 deletions spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@

context 'when range is empty' do
it 'does not filter records' do
datatable.params[:columns]['5'][:search][:value] = '-'
datatable.params[:columns]['6'][:search][:value] = '-'
expect(datatable.data.size).to eq 2
item = datatable.data.first
expect(item[:last_name]).to eq 'Doe'
Expand All @@ -245,21 +245,21 @@

context 'when start date is filled' do
it 'filters records created after this date' do
datatable.params[:columns]['5'][:search][:value] = '31/12/1999-'
datatable.params[:columns]['6'][:search][:value] = '31/12/1999-'
expect(datatable.data.size).to eq 2
end
end

context 'when end date is filled' do
it 'filters records created before this date' do
datatable.params[:columns]['5'][:search][:value] = '-31/12/1999'
datatable.params[:columns]['6'][:search][:value] = '-31/12/1999'
expect(datatable.data.size).to eq 0
end
end

context 'when both date are filled' do
it 'filters records created between the range' do
datatable.params[:columns]['5'][:search][:value] = '01/12/1999-15/01/2000'
datatable.params[:columns]['6'][:search][:value] = '01/12/1999-15/01/2000'
expect(datatable.data.size).to eq 1
end
end
Expand All @@ -268,7 +268,7 @@
context 'when range is empty' do
it 'filters records' do
datatable.params[:columns]['0'][:search][:value] = 'doe'
datatable.params[:columns]['5'][:search][:value] = '-'
datatable.params[:columns]['6'][:search][:value] = '-'
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:last_name]).to eq 'Doe'
Expand All @@ -278,7 +278,7 @@
context 'when start date is filled' do
it 'filters records' do
datatable.params[:columns]['0'][:search][:value] = 'doe'
datatable.params[:columns]['5'][:search][:value] = '01/12/1999-'
datatable.params[:columns]['6'][:search][:value] = '01/12/1999-'
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:last_name]).to eq 'Doe'
Expand All @@ -288,7 +288,7 @@
context 'when end date is filled' do
it 'filters records' do
datatable.params[:columns]['0'][:search][:value] = 'doe'
datatable.params[:columns]['5'][:search][:value] = '-15/01/2000'
datatable.params[:columns]['6'][:search][:value] = '-15/01/2000'
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:last_name]).to eq 'Doe'
Expand All @@ -298,7 +298,7 @@
context 'when both date are filled' do
it 'filters records' do
datatable.params[:columns]['0'][:search][:value] = 'doe'
datatable.params[:columns]['5'][:search][:value] = '01/12/1999-15/01/2000'
datatable.params[:columns]['6'][:search][:value] = '01/12/1999-15/01/2000'
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:last_name]).to eq 'Doe'
Expand All @@ -318,7 +318,7 @@
let(:datatable) { DatatableCondEq.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 1
datatable.params[:columns]['5'][:search][:value] = 1
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:first_name]).to eq 'john'
Expand All @@ -329,7 +329,7 @@
let(:datatable) { DatatableCondNotEq.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 1
datatable.params[:columns]['5'][:search][:value] = 1
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:first_name]).to eq 'mary'
Expand All @@ -340,7 +340,7 @@
let(:datatable) { DatatableCondLt.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 2
datatable.params[:columns]['5'][:search][:value] = 2
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:first_name]).to eq 'john'
Expand All @@ -351,7 +351,7 @@
let(:datatable) { DatatableCondGt.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 1
datatable.params[:columns]['5'][:search][:value] = 1
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:first_name]).to eq 'mary'
Expand All @@ -362,7 +362,7 @@
let(:datatable) { DatatableCondLteq.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 2
datatable.params[:columns]['5'][:search][:value] = 2
expect(datatable.data.size).to eq 2
end
end
Expand All @@ -371,7 +371,7 @@
let(:datatable) { DatatableCondGteq.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = 1
datatable.params[:columns]['5'][:search][:value] = 1
expect(datatable.data.size).to eq 2
end
end
Expand All @@ -380,7 +380,7 @@
let(:datatable) { DatatableCondIn.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = [1]
datatable.params[:columns]['5'][:search][:value] = [1]
expect(datatable.data.size).to eq 1
item = datatable.data.first
expect(item[:first_name]).to eq 'john'
Expand All @@ -391,8 +391,8 @@
let(:datatable) { DatatableCondInWithRegex.new(sample_params) }

it 'filters records matching' do
datatable.params[:columns]['4'][:search][:value] = '1|2'
datatable.params[:order]['0'] = { column: '4', dir: 'asc' }
datatable.params[:columns]['5'][:search][:value] = '1|2'
datatable.params[:order]['0'] = { column: '5', dir: 'asc' }
expect(datatable.data.size).to eq 2
item = datatable.data.first
expect(item[:first_name]).to eq 'john'
Expand All @@ -411,17 +411,17 @@
end

it 'Returns an empty result if input value is too large' do
datatable.params[:columns]['4'][:search][:value] = largest_postgresql_integer_value + 1
datatable.params[:columns]['5'][:search][:value] = largest_postgresql_integer_value + 1
expect(datatable.data.size).to eq 0
end

it 'Returns an empty result if input value is too small' do
datatable.params[:columns]['4'][:search][:value] = smallest_postgresql_integer_value - 1
datatable.params[:columns]['5'][:search][:value] = smallest_postgresql_integer_value - 1
expect(datatable.data.size).to eq 0
end

it 'returns the matching user' do
datatable.params[:columns]['4'][:search][:value] = largest_postgresql_integer_value
datatable.params[:columns]['5'][:search][:value] = largest_postgresql_integer_value
expect(datatable.data.size).to eq 1
end
end
Expand Down
2 changes: 2 additions & 0 deletions spec/support/datatables/complex_datatable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def view_columns
email: { source: 'User.email' },
first_name: { source: 'User.first_name' },
last_name: { source: 'User.last_name' },
full_name: { source: 'full_name' },
post_id: { source: 'User.post_id', orderable: false },
created_at: { source: 'User.created_at' },
}
Expand All @@ -19,6 +20,7 @@ def data
email: record.email,
first_name: record.first_name,
last_name: record.last_name,
full_name: record.full_name,
post_id: record.post_id,
created_at: record.created_at,
}
Expand Down
8 changes: 7 additions & 1 deletion spec/support/helpers/params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,18 @@ def sample_params
}
},
'4' => {
'data' => 'post_id', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
'data' => 'full_name', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
'search' => {
'value' => '', 'regex' => 'false'
}
},
'5' => {
'data' => 'post_id', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
'search' => {
'value' => '', 'regex' => 'false'
}
},
'6' => {
'data' => 'created_at', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
'search' => {
'value' => '', 'regex' => 'false'
Expand Down
3 changes: 3 additions & 0 deletions spec/support/models/user.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# frozen_string_literal: true

class User < ActiveRecord::Base
def full_name
"#{first_name} #{last_name}"
end
end

0 comments on commit dd53c05

Please sign in to comment.