On Thu, Mar 8, 2012 at 5:15 PM, S Ahmed <[email protected]> wrote:
> In my authenticate_pages.spec (requests) I do the following to test if the
> signin worked:
>
> describe "with valid information" do
> #let(:account) { FactoryGirl.create(:account) }
> let(:user) { FactoryGirl.create(:user) }
>
> before do
> fill_in "Email", with: user.email
> fill_in "Password", with: user.password
> click_button "Sign in"
> end
>
> it { should have_link('Sign out', href: signout_path) }
> it { should_not have_link('Sign in', href: signin_path) }
> end
>
>
> Now in my other controllers that assume the user is signed in, how can I
> refactor this and put it somewhere that I can just call to make the user
> signed in so I can test pages that assume the user is already signed in?
Here's one pattern I've seen (and used):
def login_as(user)
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
end
describe "things" do
before { sign_in_as(FactoryGirl.create:(user) }
describe "GET /thing" do
# ...
end
end
HTH,
David
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users