[rspec-users] how to refactor signin process for re-use?

Zach Dennis zach.dennis at gmail.com
Fri Mar 9 14:27:03 UTC 2012


On Thu, Mar 8, 2012 at 10:38 PM, David Chelimsky <dchelimsky at gmail.com> wrote:
> On Thu, Mar 8, 2012 at 5:15 PM, S Ahmed <sahmed1020 at gmail.com> 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

Where #sign_in_as and #login_as in David's example should be the same method.

Zach

>
> HTH,
> David
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users



-- 

--
@zachdennis
http://www.continuousthinking.com
http://www.mutuallyhuman.com


More information about the rspec-users mailing list