users_spec.rb 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. require 'rails_helper'
  2. describe User do
  3. describe "validations" do
  4. describe "invitation_code" do
  5. context "when configured to use invitation codes" do
  6. before do
  7. stub(User).using_invitation_code? {true}
  8. end
  9. it "only accepts valid invitation codes" do
  10. User::INVITATION_CODES.each do |v|
  11. should allow_value(v).for(:invitation_code)
  12. end
  13. end
  14. it "can reject invalid invitation codes" do
  15. %w['foo', 'bar'].each do |v|
  16. should_not allow_value(v).for(:invitation_code)
  17. end
  18. end
  19. it "requires no authentication code when requires_no_invitation_code! is called" do
  20. u = User.new(username: 'test', email: 'test@test.com', password: '12345678', password_confirmation: '12345678')
  21. u.requires_no_invitation_code!
  22. expect(u).to be_valid
  23. end
  24. end
  25. context "when configured not to use invitation codes" do
  26. before do
  27. stub(User).using_invitation_code? {false}
  28. end
  29. it "skips this validation" do
  30. %w['foo', 'bar', nil, ''].each do |v|
  31. should allow_value(v).for(:invitation_code)
  32. end
  33. end
  34. end
  35. end
  36. end
  37. context '#deactivate!' do
  38. it "deactivates the user and all her agents" do
  39. agent = agents(:jane_website_agent)
  40. users(:jane).deactivate!
  41. agent.reload
  42. expect(agent.deactivated).to be_truthy
  43. expect(users(:jane).deactivated_at).not_to be_nil
  44. end
  45. end
  46. context '#activate!' do
  47. before do
  48. users(:bob).deactivate!
  49. end
  50. it 'activates the user and all his agents' do
  51. agent = agents(:bob_website_agent)
  52. users(:bob).activate!
  53. agent.reload
  54. expect(agent.deactivated).to be_falsy
  55. expect(users(:bob).deactivated_at).to be_nil
  56. end
  57. end
  58. end