Skip to content

Commit 26c3a60

Browse files
committed
improve specs
1 parent f1bc6ce commit 26c3a60

File tree

1 file changed

+46
-28
lines changed

1 file changed

+46
-28
lines changed

spec/ransack/search_spec.rb

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,25 @@ def remove_quotes_and_backticks(str)
465465
expect(sort.dir).to eq 'desc'
466466
end
467467

468-
it 'creates sorts based on a single alias' do
468+
it 'creates sorts based on a single attribute and uppercase direction' do
469+
@s.sorts = 'id DESC'
470+
expect(@s.sorts.size).to eq(1)
471+
sort = @s.sorts.first
472+
expect(sort).to be_a Nodes::Sort
473+
expect(sort.name).to eq 'id'
474+
expect(sort.dir).to eq 'desc'
475+
end
476+
477+
it 'creates sorts based on a single attribute and without direction' do
478+
@s.sorts = 'id'
479+
expect(@s.sorts.size).to eq(1)
480+
sort = @s.sorts.first
481+
expect(sort).to be_a Nodes::Sort
482+
expect(sort.name).to eq 'id'
483+
expect(sort.dir).to eq 'asc'
484+
end
485+
486+
it 'creates sorts based on a single alias/direction' do
469487
@s.sorts = 'daddy desc'
470488
expect(@s.sorts.size).to eq(1)
471489
sort = @s.sorts.first
@@ -474,100 +492,100 @@ def remove_quotes_and_backticks(str)
474492
expect(sort.dir).to eq 'desc'
475493
end
476494

477-
it 'creates sorts based on a single attribute and uppercase direction' do
478-
@s.sorts = 'id DESC'
495+
it 'creates sorts based on a single alias and uppercase direction' do
496+
@s.sorts = 'daddy DESC'
479497
expect(@s.sorts.size).to eq(1)
480498
sort = @s.sorts.first
481499
expect(sort).to be_a Nodes::Sort
482-
expect(sort.name).to eq 'id'
500+
expect(sort.name).to eq 'parent_name'
483501
expect(sort.dir).to eq 'desc'
484502
end
485503

486-
it 'creates sorts based on a single attribute and without direction' do
487-
@s.sorts = 'id'
504+
it 'creates sorts based on a single alias and without direction' do
505+
@s.sorts = 'daddy'
488506
expect(@s.sorts.size).to eq(1)
489507
sort = @s.sorts.first
490508
expect(sort).to be_a Nodes::Sort
491-
expect(sort.name).to eq 'id'
509+
expect(sort.name).to eq 'parent_name'
492510
expect(sort.dir).to eq 'asc'
493511
end
494512

495-
it 'creates sorts based on multiple attributes/directions in array format' do
496-
@s.sorts = ['id desc', { name: 'name', dir: 'asc' }]
513+
it 'creates sorts based on attributes, alias and directions in array format' do
514+
@s.sorts = ['id desc', { name: 'daddy', dir: 'asc' }]
497515
expect(@s.sorts.size).to eq(2)
498516
sort1, sort2 = @s.sorts
499517
expect(sort1).to be_a Nodes::Sort
500518
expect(sort1.name).to eq 'id'
501519
expect(sort1.dir).to eq 'desc'
502520
expect(sort2).to be_a Nodes::Sort
503-
expect(sort2.name).to eq 'name'
521+
expect(sort2.name).to eq 'parent_name'
504522
expect(sort2.dir).to eq 'asc'
505523
end
506524

507-
it 'creates sorts based on multiple attributes and uppercase directions in array format' do
508-
@s.sorts = ['id DESC', { name: 'name', dir: 'ASC' }]
525+
it 'creates sorts based on attributes, alias and uppercase directions in array format' do
526+
@s.sorts = ['id DESC', { name: 'daddy', dir: 'ASC' }]
509527
expect(@s.sorts.size).to eq(2)
510528
sort1, sort2 = @s.sorts
511529
expect(sort1).to be_a Nodes::Sort
512530
expect(sort1.name).to eq 'id'
513531
expect(sort1.dir).to eq 'desc'
514532
expect(sort2).to be_a Nodes::Sort
515-
expect(sort2.name).to eq 'name'
533+
expect(sort2.name).to eq 'parent_name'
516534
expect(sort2.dir).to eq 'asc'
517535
end
518536

519-
it 'creates sorts based on multiple attributes and different directions
537+
it 'creates sorts based on attributes, alias and different directions
520538
in array format' do
521-
@s.sorts = ['id DESC', { name: 'name', dir: nil }]
539+
@s.sorts = ['id DESC', { name: 'daddy', dir: nil }]
522540
expect(@s.sorts.size).to eq(2)
523541
sort1, sort2 = @s.sorts
524542
expect(sort1).to be_a Nodes::Sort
525543
expect(sort1.name).to eq 'id'
526544
expect(sort1.dir).to eq 'desc'
527545
expect(sort2).to be_a Nodes::Sort
528-
expect(sort2.name).to eq 'name'
546+
expect(sort2.name).to eq 'parent_name'
529547
expect(sort2.dir).to eq 'asc'
530548
end
531549

532-
it 'creates sorts based on multiple attributes/directions in hash format' do
550+
it 'creates sorts based on attributes, alias and directions in hash format' do
533551
@s.sorts = {
534552
'0' => { name: 'id', dir: 'desc' },
535-
'1' => { name: 'name', dir: 'asc' }
553+
'1' => { name: 'daddy', dir: 'asc' }
536554
}
537555
expect(@s.sorts.size).to eq(2)
538556
expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
539557
id_sort = @s.sorts.detect { |s| s.name == 'id' }
540-
name_sort = @s.sorts.detect { |s| s.name == 'name' }
558+
daddy_sort = @s.sorts.detect { |s| s.name == 'parent_name' }
541559
expect(id_sort.dir).to eq 'desc'
542-
expect(name_sort.dir).to eq 'asc'
560+
expect(daddy_sort.dir).to eq 'asc'
543561
end
544562

545-
it 'creates sorts based on multiple attributes and uppercase directions
563+
it 'creates sorts based on attributes, alias and uppercase directions
546564
in hash format' do
547565
@s.sorts = {
548566
'0' => { name: 'id', dir: 'DESC' },
549-
'1' => { name: 'name', dir: 'ASC' }
567+
'1' => { name: 'daddy', dir: 'ASC' }
550568
}
551569
expect(@s.sorts.size).to eq(2)
552570
expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
553571
id_sort = @s.sorts.detect { |s| s.name == 'id' }
554-
name_sort = @s.sorts.detect { |s| s.name == 'name' }
572+
daddy_sort = @s.sorts.detect { |s| s.name == 'parent_name' }
555573
expect(id_sort.dir).to eq 'desc'
556-
expect(name_sort.dir).to eq 'asc'
574+
expect(daddy_sort.dir).to eq 'asc'
557575
end
558576

559-
it 'creates sorts based on multiple attributes and different directions
577+
it 'creates sorts based on attributes, alias and different directions
560578
in hash format' do
561579
@s.sorts = {
562580
'0' => { name: 'id', dir: 'DESC' },
563-
'1' => { name: 'name', dir: nil }
581+
'1' => { name: 'daddy', dir: nil }
564582
}
565583
expect(@s.sorts.size).to eq(2)
566584
expect(@s.sorts).to be_all { |s| Nodes::Sort === s }
567585
id_sort = @s.sorts.detect { |s| s.name == 'id' }
568-
name_sort = @s.sorts.detect { |s| s.name == 'name' }
586+
daddy_sort = @s.sorts.detect { |s| s.name == 'parent_name' }
569587
expect(id_sort.dir).to eq 'desc'
570-
expect(name_sort.dir).to eq 'asc'
588+
expect(daddy_sort.dir).to eq 'asc'
571589
end
572590

573591
it 'overrides existing sort' do

0 commit comments

Comments
 (0)