[rspec-users] spec for authenticated user

Nick Hoffman nick at deadorange.com
Thu May 28 08:32:03 EDT 2009


> -----Original Message-----
> From: rspec-users-bounces at rubyforge.org [mailto:rspec-users-bounces at rubyforge.org] On Behalf Of David Chelimsky
> Sent: Wednesday, May 27, 2009 5:55 PM
> To: rspec-users
> Subject: Re: [rspec-users] spec for authenticated user
>>   before_filter :requires_user,
>>                :except => :create
>>
>>  def show
>>   #-------
>>
>>     # the currently authenticated user
>>     @user = user
>>
>>   end
>>
>> How shall we check the currently authenticated user using rspec?
>
> What's in requires_user?

On Wed, May 27, 2009 at 8:40 AM, Diwakar, ANGLER - EIT
<diwakar at angleritech.com> wrote:
>  private; def requires_user
>    if user.nil?
>
>      if request.format.html?
>
>        session[ :redirected_from ] ||= request.env[ "REQUEST_URI" ]
>
>        redirect_to( sign_in_url )
>      else
>        render( :status => 403, :text => 'An authenticated user is required.' )
>      end
>    end
>
>  end

What's setting the "user" variable before #requires_user is called? Or
is "user" a method inside that controller?

Ignoring that question for a moment, all you need to do is write out
(on paper/in Vim/whatever) the behaviour of each scenario that can
occur while traversing through this controller. For example, one
[verbose] scenario is:

"When a user who's not logged-in and whose session isn't being
redirected requests HTML from FooBarsController#show , they should be
redirected to the sign-up page."

Once you have the behaviour of each scenario mapped out, write specs
for each scenario.

When that's all done, I recommend writing your specs before you write code.
-Nick


More information about the rspec-users mailing list