activerecord-hackery--ransack/spec/ransack/adapters/active_record/base_spec.rb

48 lines
1.4 KiB
Ruby
Raw Normal View History

2011-03-31 00:31:39 +00:00
require 'spec_helper'
module Ransack
module Adapters
module ActiveRecord
describe Base do
it 'adds a ransack method to ActiveRecord::Base' do
::ActiveRecord::Base.should respond_to :ransack
end
it 'aliases the method to search if available' do
::ActiveRecord::Base.should respond_to :search
end
describe '#search' do
before do
@s = Person.search
end
it 'creates a search with Relation as its object' do
@s.should be_a Search
@s.object.should be_an ::ActiveRecord::Relation
end
end
describe '#ransacker' do
it 'creates ransack attributes' do
2011-04-11 16:04:31 +00:00
s = Person.search(:reversed_name_eq => 'htimS cirA')
s.result.should have(1).person
s.result.first.should eq Person.find_by_name('Aric Smith')
end
2011-04-11 16:59:26 +00:00
it 'allows access of attributes through associations' do
s = Person.search(:children_reversed_name_eq => 'htimS cirA')
s.result.to_sql.should match /"children_people"."name" = 'Aric Smith'/
end
it 'allows an "attribute" to be an InfixOperation' do
s = Person.search(:doubled_name_eq => 'Aric SmithAric Smith')
s.result.first.should eq Person.find_by_name('Aric Smith')
end
end
2011-03-31 00:31:39 +00:00
end
end
end
end