Advertisement
Guest User

Untitled

a guest
Dec 8th, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. require 'spec_helper'
  2.  
  3. describe User do
  4.  
  5. before do
  6. @user = User.new(name: "Example User", email: "user@example.com",
  7. password: "foobar", password_confirmation: "foobar")
  8. end
  9.  
  10. subject { @user }
  11.  
  12. it { should respond_to(:name) }
  13. it { should respond_to(:email) }
  14. it { should respond_to(:password_digest) }
  15. it { should respond_to(:password) }
  16. it { should respond_to(:password_confirmation) }
  17. it { should respond_to(:authenticate) }
  18.  
  19. it { should be_valid }
  20.  
  21.  
  22. describe "when password is not present" do
  23. before { @user.password = @user.password_confirmation = " " }
  24. it { should_not be_valid }
  25. end
  26.  
  27. describe "when password doesn't match confirmation" do
  28. before { @user.password_confirmation = "mismatch" }
  29. it { should_not be_valid }
  30. end
  31.  
  32. describe "when password is too short" do
  33. before { @user.password = @user.password_confirmation = "a" * 5 }
  34. it { should_not be_valid }
  35. end
  36.  
  37.  
  38. describe "return value of authenticate method" do
  39. before { @user.save }
  40. let(:found_user) { User.find_by_email(@user.email) }
  41.  
  42. describe "with valid password" do
  43. it { should == found_user.authenticate(@user.password) }
  44. end
  45.  
  46. describe "with invalid password" do
  47. let(:user_for_invalid_password) { found_user.authenticate("invalid") }
  48.  
  49. it { should_not == user_for_invalid_password }
  50. specify { user_for_invalid_password.should be_false }
  51. end
  52. end
  53.  
  54.  
  55. describe "when email format is invalid" do
  56. it "should be invalid" do
  57. addresses = %w[user@foo,com user_at_foo.org example.user@foo.
  58. foo@bar_baz.com foo@bar+baz.com]
  59. addresses.each do |invalid_address|
  60. @user.email = invalid_address
  61. @user.should_not be_valid
  62. end
  63. end
  64. end
  65.  
  66. describe "when email format is valid" do
  67. it "should be valid" do
  68. addresses = %w[user@foo.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@baz.cn]
  69. addresses.each do |valid_address|
  70. @user.email = valid_address
  71. @user.should be_valid
  72. end
  73. end
  74. end
  75.  
  76. describe "when email address is already taken" do
  77. before do
  78. user_with_same_email = @user.dup
  79. user_with_same_email.email = @user.email.upcase
  80. user_with_same_email.save
  81. end
  82.  
  83. it { should_not be_valid }
  84. end
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement