|
12 | 12 | expect { datatable.filter_records }.to raise_error(ArgumentError)
|
13 | 13 | end
|
14 | 14 |
|
15 |
| - it 'performs a simple search first' do |
16 |
| - datatable.params[:search] = { value: 'msmith' } |
17 |
| - expect(datatable).to receive(:build_conditions_for_datatable) |
18 |
| - datatable.filter_records(records) |
| 15 | + context 'with simple search' do |
| 16 | + before do |
| 17 | + datatable.params[:search] = { value: 'msmith' } |
| 18 | + end |
| 19 | + |
| 20 | + it 'performs a simple search first' do |
| 21 | + expect(datatable).to receive(:build_conditions_for_datatable) |
| 22 | + datatable.filter_records(records) |
| 23 | + end |
| 24 | + |
| 25 | + it 'does not search unsearchable fields' do |
| 26 | + criteria = datatable.filter_records(records) |
| 27 | + expect(criteria.to_sql).not_to include('email_hash') |
| 28 | + end |
19 | 29 | end
|
20 | 30 |
|
| 31 | + |
21 | 32 | it 'performs a composite search second' do
|
22 | 33 | datatable.params[:search] = { value: '' }
|
23 | 34 | expect(datatable).to receive(:build_conditions_for_selected_columns)
|
|
246 | 257 |
|
247 | 258 | context 'when range is empty' do
|
248 | 259 | it 'does not filter records' do
|
249 |
| - datatable.params[:columns]['6'][:search][:value] = '-' |
| 260 | + datatable.params[:columns]['7'][:search][:value] = '-' |
250 | 261 | expect(datatable.data.size).to eq 2
|
251 | 262 | item = datatable.data.first
|
252 | 263 | expect(item[:last_name]).to eq 'Doe'
|
|
255 | 266 |
|
256 | 267 | context 'when start date is filled' do
|
257 | 268 | it 'filters records created after this date' do
|
258 |
| - datatable.params[:columns]['6'][:search][:value] = '31/12/1999-' |
| 269 | + datatable.params[:columns]['7'][:search][:value] = '31/12/1999-' |
259 | 270 | expect(datatable.data.size).to eq 2
|
260 | 271 | end
|
261 | 272 | end
|
262 | 273 |
|
263 | 274 | context 'when end date is filled' do
|
264 | 275 | it 'filters records created before this date' do
|
265 |
| - datatable.params[:columns]['6'][:search][:value] = '-31/12/1999' |
| 276 | + datatable.params[:columns]['7'][:search][:value] = '-31/12/1999' |
266 | 277 | expect(datatable.data.size).to eq 0
|
267 | 278 | end
|
268 | 279 | end
|
269 | 280 |
|
270 | 281 | context 'when both date are filled' do
|
271 | 282 | it 'filters records created between the range' do
|
272 |
| - datatable.params[:columns]['6'][:search][:value] = '01/12/1999-15/01/2000' |
| 283 | + datatable.params[:columns]['7'][:search][:value] = '01/12/1999-15/01/2000' |
273 | 284 | expect(datatable.data.size).to eq 1
|
274 | 285 | end
|
275 | 286 | end
|
|
278 | 289 | context 'when range is empty' do
|
279 | 290 | it 'filters records' do
|
280 | 291 | datatable.params[:columns]['0'][:search][:value] = 'doe'
|
281 |
| - datatable.params[:columns]['6'][:search][:value] = '-' |
| 292 | + datatable.params[:columns]['7'][:search][:value] = '-' |
282 | 293 | expect(datatable.data.size).to eq 1
|
283 | 294 | item = datatable.data.first
|
284 | 295 | expect(item[:last_name]).to eq 'Doe'
|
|
288 | 299 | context 'when start date is filled' do
|
289 | 300 | it 'filters records' do
|
290 | 301 | datatable.params[:columns]['0'][:search][:value] = 'doe'
|
291 |
| - datatable.params[:columns]['6'][:search][:value] = '01/12/1999-' |
| 302 | + datatable.params[:columns]['7'][:search][:value] = '01/12/1999-' |
292 | 303 | expect(datatable.data.size).to eq 1
|
293 | 304 | item = datatable.data.first
|
294 | 305 | expect(item[:last_name]).to eq 'Doe'
|
|
298 | 309 | context 'when end date is filled' do
|
299 | 310 | it 'filters records' do
|
300 | 311 | datatable.params[:columns]['0'][:search][:value] = 'doe'
|
301 |
| - datatable.params[:columns]['6'][:search][:value] = '-15/01/2000' |
| 312 | + datatable.params[:columns]['7'][:search][:value] = '-15/01/2000' |
302 | 313 | expect(datatable.data.size).to eq 1
|
303 | 314 | item = datatable.data.first
|
304 | 315 | expect(item[:last_name]).to eq 'Doe'
|
|
308 | 319 | context 'when both date are filled' do
|
309 | 320 | it 'filters records' do
|
310 | 321 | datatable.params[:columns]['0'][:search][:value] = 'doe'
|
311 |
| - datatable.params[:columns]['6'][:search][:value] = '01/12/1999-15/01/2000' |
| 322 | + datatable.params[:columns]['7'][:search][:value] = '01/12/1999-15/01/2000' |
312 | 323 | expect(datatable.data.size).to eq 1
|
313 | 324 | item = datatable.data.first
|
314 | 325 | expect(item[:last_name]).to eq 'Doe'
|
|
0 commit comments