Noob test Q

I have been working with restful_authentication. I have made some
changes to it and now I’m trying to get all the default tests that
came with the plugin to pass.

Here’s one of the tests that error out:

def test_should_require_login_on_signup
assert_no_difference ‘User.count’ do
create_user(:login => nil)
assert assigns(:user).errors.on(:login)
assert_response :success
end
end

This is the error:
NoMethodError: You have a nil object when you didn’t expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.errors

When using running debugger and checking in on assigns(:user) it
returns nil, so I assume this is the trouble.

Finally here’s my question, what is “create_user” doing? Is it
creating a new User based upon the users.yml fixture that the test
suit is loading, or is it something else? I couldn’t find reference
for this “dynamic??” method anywhere.

Thanks

Any thoughts on this?

Basically, I just need to know what “create_user” is doing? Is it
creating a new User based upon the users.yml fixture that the test
suit is loading, or is it something else? I couldn’t find reference
for this “dynamic??” method anywhere.

def test_should_require_login_on_signup
assert_no_difference ‘User.count’ do
create_user(:login => nil)
assert assigns(:user).errors.on(:login)
assert_response :success
end
end

If you look down the end of the file with that code in you will find the
definition of create_user. At least in my version anyway. I found it
by a
global search, but I realised when it found it that I should have looked
in
that file first.

2009/3/27 elliottg [email protected]

It looks like I have a “Filter chain halted” error going on that is
not allowing the user to be created.

Thanks for all the help.

I can’t help with this as I have tweaked the create code so it is
non-standard. Is there a before_filter in UsersController, if so then
it
may be failing in there.

2009/3/27 elliottg [email protected]

Doh… I just found it, right after my last post.

Thanks for getting back to me.

I am assuming that somehow @user is being returned or something?
Because, assigns(:user) is being called on the next line??

Is that the case, and further any ideas why its coming up Nil? Testing
in script/console test shows that creating a new User works fine and I
know the fixture data is in the users table as it should be?

Thanks a ton

A before_filter redirect in role_reqirement_system#access_denied is
halting things before the create action of the user controller could
be called. Not really sure how test around this as the redirect is a
key part of how r_r works. Any thoughts on getting around situations
like this?

Thanks

I don’t know about role_requirement_system I am afraid, so only
guesswork
follows. If I understand correctly the problem is that the restful
authentication tests are failing because the role requirement conditions
are
not satisfied by the test conditions. Possibly you have to adjust the
test
fixtures and possibly test code so that the users in the fixtures have
appropriate roles to satisfy the tests.

2009/3/29 elliottg [email protected]