Guest User

Untitled

a guest
Apr 25th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. module UserSpecHelper
  2. def valid_user_hash
  3. {:username => "Blinchik", :password => "1234", :password_confirmation => "1234"}
  4. end
  5. end
  6.  
  7. describe Users do
  8. include UserSpecHelper
  9.  
  10. before(:each) do
  11. @user = mock(User, valid_user_hash)
  12. dispatch_to(Users, :index)
  13. end
  14.  
  15. # TODO: Use mocking/stubbing.
  16. describe "in general" do
  17. before(:each) do
  18. User.stub!(:new).and_return(@user)
  19. @user.stub!(:save).and_return(true)
  20. end
  21.  
  22. it "requires username on signup" do
  23. lambda do
  24. controller = create_user(:username => nil)
  25. controller.assigns(:user).errors.on(:username).should_not be_nil
  26. controller.should be_successful
  27. end.should_not change(User, :count)
  28. end
  29.  
  30. it "requires password on signup" do
  31. lambda do
  32. controller = create_user(:password => nil)
  33. controller.assigns(:user).errors.on(:password).should_not be_nil
  34. controller.should be_successful
  35. end.should_not change(User, :count)
  36. end
  37.  
  38. it "requires password confirmation on signup" do
  39. lambda do
  40. controller = create_user(:password_confirmation => nil)
  41. controller.assigns(:user).errors.on(:password_confirmation).should_not be_nil
  42. controller.should be_successful
  43. end.should_not change(User, :count)
  44. end
  45.  
  46. def create_user(options = {})
  47. dispatch_to(Users, :create, :user => valid_user_hash.merge(options))
  48. end
  49. end
  50.  
  51. describe "#create with valid user" do
  52. before(:each) do
  53. User.stub!(:new).and_return(@user)
  54. @user.stub!(:save).and_return(true)
  55. @params = {:user => valid_user_hash}
  56. end
  57.  
  58. it "should save the user" do
  59. @user.should_receive(:save).and_return(true)
  60. dispatch_to(Users, :create, @params)
  61. end
  62. end
  63. end
Add Comment
Please, Sign In to add comment