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

Sam Goldman samwgoldman at gmail.com
Fri Mar 9 15:24:42 UTC 2012


We have used shared contexts to achieve this.
https://www.relishapp.com/rspec/rspec-core/docs/example-groups/shared-context

For controller specs using devise, assuming we have let(:current_user)
in the test including this shared context:

shared_context :signed_in do
  before do
    sign_in(current_user)
    controller.stub!(:current_user).and_return(current_user)
  end
end

On Thu, Mar 8, 2012 at 6: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?
>
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users


More information about the rspec-users mailing list