I've done some more work on the specs, and it seems that my mocks
aren't pushing in the roles array associated with current_user.
describe UsersController do
before(:each) do
@user = mock_model(User,
:id => 1,
:email => '[EMAIL PROTECTED]',
:password => 'teamup'
)
controller.stub!(:current_user).and_return(@user)
end
it "should login as a tutor" do
@role = mock_model(Role)
@role.stub!(:title).and_return("tutor")
@user.should_receive(:roles).and_return([EMAIL PROTECTED])
@user.stub!(:type).and_return("Tutor")
User.should_receive(:authenticate).with('[EMAIL
PROTECTED]','teamup').and_return(@user)
session[:user] = @user.id
post :login, :login => {:email => "[EMAIL PROTECTED]", :password
=> "teamup"}
response.should be_success
response.should redirect_to(:controller => "toolkit/overview")
should_be_logged_in
end
end
The error i receive is 'UsersController should login as a tutor'
FAILED expected redirect to {:controller=>"toolkit/overview"}, got no
redirect". If I modify the test to be should render_template("index")
it will fail, saying that the template is reverting back to login.
Any ideas on what I'm doing wrong?
Thanks!
- j
On 7/24/07, Justin Williams <[EMAIL PROTECTED]> wrote:
> On 7/24/07, David Chelimsky <[EMAIL PROTECTED]> wrote:
>
> > Would you please post the code for the actions as well?
>
> def login
> if request.post?
> begin
> session[:user] = User.authenticate(params[:login][:email],
> params[:login][:password]).id
>
> if current_user.roles.include?(Role.find_by_title("employee")) or
> current_user.roles.include?(Role.find_by_title("administrator"))
> redirect_to staff_path
> elsif current_user.roles.include?(Role.find_by_title("tutor"))
> redirect_to toolkit_path
> elsif current_user.roles.include?(Role.find_by_title("client"))
> redirect_to client_path
> end
> rescue
> flash[:warning] = "Your e-mail address or password is invalid."
> render :action => "login"
> end
> end
> end
>
>
> It should also be noted, I realized the specs have two different sets
> of credentials. Modifying this to use a single one doesn't correct
> it. I was just a bit too liberal in my cut/pasting for email.
>
> Thanks!
>
> - j
>
--
-
Justin Williams
[EMAIL PROTECTED]
work: http://www.secondgearllc.com/
play: http://www.carpeaqua.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users