Testing for redirects

17 views
Skip to first unread message

Jason Hsu, Rubyist

unread,
Jun 21, 2015, 3:01:22 AM6/21/15
to rubyonra...@googlegroups.com
I have an app with admin users created with the devise gem.

I have succeeded in redirecting anyone who tries to access an admin profile page but is NOT logged in as an admin to the root_path (http://localhost:3000).

However, I'm having difficulty getting the tests to pass in my integration test.  (I'm using Capybara and minitest.)

In the admins controller, the first line under "def index" is:
redirect_to(root_path) unless admin_signed_in?

In the integration test, I start with the following code:
    test_prepare # From test/test_helper.rb
    @u1 = users(:connery) # From test/fixtures/users.yml
    @a1 = admins(:vivian_kensington) # From test/fixtures/admin.yml
    visit new_user_session_path
    fill_in('Email', with: 'sean_c...@example.com')
    fill_in('Password', with: 'original')
    uncheck('Remember me')
    click_button('Log in')
    visit admin_path(@a1)

How do I test for the redirect?  The path parameter at this point is nil and NOT root_path or '/'.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages