50 lines
1.4 KiB
Ruby
50 lines
1.4 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe SearchController, :type => :controller do
|
|
before do
|
|
@user = alice
|
|
@aspect = @user.aspects.first
|
|
sign_in :user, @user
|
|
end
|
|
|
|
describe 'query is a person' do
|
|
@lola = FactoryGirl.create(:person, :diaspora_handle => "lola@example.org",
|
|
:profile => FactoryGirl.build(:profile, :first_name => "Lola",
|
|
:last_name => "w", :searchable => false))
|
|
it 'goes to people index page' do
|
|
get :search, :q => 'eugene'
|
|
expect(response).to be_redirect
|
|
end
|
|
end
|
|
|
|
|
|
describe 'query is a tag' do
|
|
it 'goes to a tag page' do
|
|
get :search, :q => '#cats'
|
|
expect(response).to redirect_to(tag_path('cats'))
|
|
end
|
|
|
|
it 'removes dots from the query' do
|
|
get :search, :q => '#cat.s'
|
|
expect(response).to redirect_to(tag_path('cats'))
|
|
end
|
|
|
|
it 'stay on the page if you search for the empty hash' do
|
|
get :search, :q => '#'
|
|
expect(flash[:error]).to be_present
|
|
end
|
|
end
|
|
|
|
describe '#search_query' do
|
|
it 'strips the term parameter' do
|
|
@controller.params[:term] = ' IN SPACE! '
|
|
expect(@controller.send(:search_query)).to eq 'IN SPACE!'
|
|
end
|
|
|
|
it 'strips the q parameter' do
|
|
@controller.params[:q] = ' IN SPACE! '
|
|
expect(@controller.send(:search_query)).to eq 'IN SPACE!'
|
|
end
|
|
end
|
|
|
|
end
|