[rspec-users] Side Effects in Stories

Jonathan Linowes jonathan at parkerhill.com
Fri Oct 19 15:21:18 EDT 2007


On Oct 19, 2007, at 1:54 PM, s.ross wrote:

> On Oct 18, 2007, at 6:09 AM, Daniel N wrote:
>
>> On 9/11/07, s.ross <cwdinfo at gmail.com> wrote:
>> I have a story where the user resets the password [hey, this story
>> thing really rocks!]. It is expected that the password will change
>> and that the user will be redirected to a login screen. A side effect
>> is that the user will receive email with his/her new password.
>>
>> Where I'm stuck is in ascertaining whether mail was generated.
>>
>> Any thoughts on how this might be accomplished?
>>
>> Thanks
>>
>> -----------------
>>
>> Story: Reset the Password
>>
>>    As a registered user
>>    I want to be able to reset the password and have it emailed to me
>>    And then I want to log in
>>
>>
>> Scenario: Reset password for an account
>>
>>    Given A valid account is given:   joe at schmoe.com
>>
>>    When Resetting password for joe at schmoe.com
>>
>>    Then Password state should change in database joe at schmoe.com
>>    And Registered user should be redirected to login screen
>>    And Email should be sent to the registered user
>>    And the new password should work :)
>> _______________________________________________
>>
>> Hi s.ross
>>
>> I know this was a while ago that you asked this question, but did   
>> you end up coming up with a solution?
>>
>> -Daniel
>
> Nope, and embarrassingly, I took a different direction without  
> preserving any traces of what I had been doing (can you say  
> "frequent checkins?"). Ooops. Everything but verifying that the  
> email was sent was running, but I never figured out how to verify  
> that.
>
> --steve
>
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

from my specs on restful_authentication's models/user_observer_spec.rb

context "A UserObserver" do
   setup do
     @user = mock('user')
     @user_observer = UserObserver.instance
   end

   specify "should call UserNotifier.deliver_signup_notification on  
user creation" do
     UserNotifier.should_receive(:deliver_signup_notification).with 
(@user)
     @user.stub!(:pending?).and_return(true)
     @user.stub!(:recently_activated?).and_return(false)
     @user.stub!(:recently_forgot_password?).and_return(false)
     @user_observer.after_save(@user)
   end

(sorry its in pre-1.0 format)

of course, this checks whether the email gets sent, not whether it  
got delivered... :)

--linoj

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071019/b697d828/attachment.html 


More information about the rspec-users mailing list