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.

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

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.

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.