From fc5fbcf8b4d60131d8358458e657126a77ee9575 Mon Sep 17 00:00:00 2001 From: jonatack Date: Tue, 6 Aug 2013 18:56:16 +0200 Subject: [PATCH] Tests: more AR versioning and update routes for Rails 3 + 4 --- spec/ransack/helpers/form_builder_spec.rb | 8 +++- spec/ransack/helpers/form_helper_spec.rb | 51 ++++++++++++++++++----- 2 files changed, 46 insertions(+), 13 deletions(-) diff --git a/spec/ransack/helpers/form_builder_spec.rb b/spec/ransack/helpers/form_builder_spec.rb index f1c083488..b00cd8eee 100644 --- a/spec/ransack/helpers/form_builder_spec.rb +++ b/spec/ransack/helpers/form_builder_spec.rb @@ -7,7 +7,7 @@ module Helpers router = ActionDispatch::Routing::RouteSet.new router.draw do resources :people - match ':controller(/:action(/:id(.:format)))' + get ':controller(/:action(/:id(.:format)))' end include router.url_helpers @@ -50,7 +50,11 @@ module Helpers describe '#sort_link' do it 'sort_link for ransack attribute' do sort_link = @f.sort_link :name, :controller => 'people' - sort_link.should match /people\?q%5Bs%5D=name\+asc/ + if ActiveRecord::VERSION::STRING =~ /^3\.[1-2]\./ + sort_link.should match /people\?q%5Bs%5D=name\+asc/ + else + sort_link.should match /people\?q(%5B|\[)s(%5D|\])=name\+asc/ + end sort_link.should match /sort_link/ sort_link.should match /Full Name<\/a>/ end diff --git a/spec/ransack/helpers/form_helper_spec.rb b/spec/ransack/helpers/form_helper_spec.rb index 320f3d473..292ab8ca9 100644 --- a/spec/ransack/helpers/form_helper_spec.rb +++ b/spec/ransack/helpers/form_helper_spec.rb @@ -7,7 +7,7 @@ module Helpers router = ActionDispatch::Routing::RouteSet.new router.draw do resources :people - match ':controller(/:action(/:id(.:format)))' + get ':controller(/:action(/:id(.:format)))' end include router.url_helpers @@ -26,24 +26,53 @@ module Helpers end describe '#sort_link with default search_key' do - subject { @controller.view_context.sort_link([:main_app, Person.search(:sorts => ['name desc'])], :name, :controller => 'people') } - it { should match /people\?q%5Bs%5D=name\+asc/ } + subject { + @controller.view_context.sort_link( + [:main_app, Person.search(sorts: ['name desc'])], + :name, controller: 'people' + ) + } + it { should match ( + if ActiveRecord::VERSION::STRING =~ /^3\.[1-2]\./ + /people\?q%5Bs%5D=name\+asc/ + else + /people\?q(%5B|\[)s(%5D|\])=name\+asc/ + end) + } it { should match /sort_link desc/ } it { should match /Full Name ▼/ } end describe '#sort_link with default search_key defined as symbol' do - subject { @controller.view_context.sort_link(Person.search({:sorts => ['name desc']}, :search_key => :people_search), - :name, :controller => 'people') } - - it { should match /people\?people_search%5Bs%5D=name\+asc/ } + subject { @controller. + view_context.sort_link( + Person.search({ sorts: ['name desc'] }, search_key: :people_search), + :name, controller: 'people' + ) + } + it { should match ( + if ActiveRecord::VERSION::STRING =~ /^3\.[1-2]\./ + /people\?people_search%5Bs%5D=name\+asc/ + else + /people\?people_search(%5B|\[)s(%5D|\])=name\+asc/ + end) + } end describe '#sort_link with default search_key defined as string' do - subject { @controller.view_context.sort_link(Person.search({:sorts => ['name desc']}, :search_key => 'people_search'), - :name, :controller => 'people') } - - it { should match /people\?people_search%5Bs%5D=name\+asc/ } + subject { + @controller.view_context.sort_link( + Person.search({ sorts: ['name desc'] }, search_key: 'people_search'), + :name, controller: 'people' + ) + } + it { should match ( + if ActiveRecord::VERSION::STRING =~ /^3\.[1-2]\./ + /people\?people_search%5Bs%5D=name\+asc/ + else + /people\?people_search(%5B|\[)s(%5D|\])=name\+asc/ + end) + } end