Newer
Older
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
require 'spec_helper'
describe AdminsController do
before do
sign_in :user, @user
end
describe '#user_search' do
context 'admin not signed in' do
it 'is behind redirect_unless_admin' do
get :user_search
response.should redirect_to stream_path
end
context 'admin signed in' do
before do
Role.add_admin(@user.person)
it 'succeeds and renders user_search' do
get :user_search
response.should be_success
response.should render_template(:user_search)
end
it 'assigns users to an empty array if nothing is searched for' do
get :user_search
assigns[:users].should == []
end
it 'should search on username' do
get :user_search, :user => {:username => @user.username}
assigns[:users].should == [@user]
end
it 'should search on email' do
get :user_search, :user => {:email => @user.email}
assigns[:users].should == [@user]
end
it 'should search on invitation_identifier' do
@user.invitation_identifier = "La@foo.com"
@user.save!
get :user_search, :user => {:invitation_identifier => @user.invitation_identifier}
assigns[:users].should == [@user]
end
it 'should search on invitation_token' do
@user.invitation_token = "akjsdhflhasdf"
@user.save
get :user_search, :user => {:invitation_token => @user.invitation_token}
assigns[:users].should == [@user]
end
end
end
describe '#admin_inviter' do
context 'admin not signed in' do
it 'is behind redirect_unless_admin' do
get :admin_inviter
response.should redirect_to stream_path
context 'admin signed in' do
before do
Role.add_admin(@user.person)
it 'does not die if you do it twice' do
get :admin_inviter, :identifier => 'bob@moms.com'
get :admin_inviter, :identifier => 'bob@moms.com'
response.should be_redirect
end
EmailInviter.should_receive(:new).and_return(stub.as_null_object)
get :admin_inviter, :identifier => 'bob@moms.com'
response.should redirect_to user_search_path
flash.notice.should include("invitation sent")
end
end
end
describe '#stats' do
before do
Role.add_admin(@user.person)
end
it 'succeeds and renders stats' do
get :stats
response.should be_success
response.should render_template(:stats)
end
end