69 lines
1.9 KiB
Ruby
69 lines
1.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
module Ransack
|
|
describe Configuration do
|
|
it 'yields Ransack on configure' do
|
|
Ransack.configure do |config|
|
|
config.should eq Ransack
|
|
end
|
|
end
|
|
|
|
it 'adds predicates' do
|
|
Ransack.configure do |config|
|
|
config.add_predicate :test_predicate
|
|
end
|
|
|
|
Ransack.predicates.should have_key 'test_predicate'
|
|
Ransack.predicates.should have_key 'test_predicate_any'
|
|
Ransack.predicates.should have_key 'test_predicate_all'
|
|
end
|
|
|
|
it 'avoids creating compound predicates if compounds: false' do
|
|
Ransack.configure do |config|
|
|
config.add_predicate(
|
|
:test_predicate_without_compound,
|
|
compounds: false
|
|
)
|
|
end
|
|
Ransack.predicates
|
|
.should have_key 'test_predicate_without_compound'
|
|
Ransack.predicates
|
|
.should_not have_key 'test_predicate_without_compound_any'
|
|
Ransack.predicates
|
|
.should_not have_key 'test_predicate_without_compound_all'
|
|
end
|
|
|
|
it 'should have default value for search key' do
|
|
Ransack.options[:search_key].should eq :q
|
|
end
|
|
|
|
it 'changes default search key parameter' do
|
|
# store original state so we can restore it later
|
|
before = Ransack.options.clone
|
|
|
|
Ransack.configure do |config|
|
|
config.search_key = :query
|
|
end
|
|
|
|
Ransack.options[:search_key].should eq :query
|
|
|
|
# restore original state so we don't break other tests
|
|
Ransack.options = before
|
|
end
|
|
|
|
it 'adds predicates that take arrays, overriding compounds' do
|
|
Ransack.configure do |config|
|
|
config.add_predicate(
|
|
:test_array_predicate,
|
|
wants_array: true,
|
|
compounds: true
|
|
)
|
|
end
|
|
|
|
Ransack.predicates['test_array_predicate'].wants_array.should eq true
|
|
Ransack.predicates.should_not have_key 'test_array_predicate_any'
|
|
Ransack.predicates.should_not have_key 'test_array_predicate_all'
|
|
end
|
|
end
|
|
end
|