[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