users_controller_test.rb 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. require 'test_helper'
  2. class UsersControllerTest < ActionDispatch::IntegrationTest
  3. def setup
  4. @user = users(:daniel)
  5. @other_user = users(:ben)
  6. end
  7. test "should display age correctly" do
  8. log_in_as @user
  9. get user_path @user
  10. assert_select ".user-age", /[A-z]+\: [0-9]+/
  11. end
  12. test "should show user" do
  13. log_in_as @user
  14. get user_url(@user)
  15. assert_response :success
  16. end
  17. test "should get edit" do
  18. log_in_as(@user)
  19. get edit_user_url(@user)
  20. assert_response :success
  21. end
  22. test "should update user" do
  23. log_in_as(@user)
  24. patch user_url(@user), params: { user: { email: @user.email, login: @user.login } }
  25. assert_redirected_to user_url(@user)
  26. end
  27. test "should redirect edit when not logged in" do
  28. get edit_user_path(@user)
  29. assert_not flash.empty?
  30. assert_redirected_to login_url
  31. end
  32. test "should redirect update when not logged in" do
  33. patch user_path(@user), params: { user: { name: @user.name,
  34. email: @user.email } }
  35. assert_not flash.empty?
  36. assert_redirected_to login_url
  37. end
  38. test "should not allow the name attribute to be edited by non-admin" do
  39. log_in_as(@user)
  40. assert_not_equal @user.name, "Wrong Name"
  41. patch user_path(@user), params: {
  42. user: { password: 'newpass',
  43. password_confirmation: 'newpass',
  44. name: "Wrong Name" } }
  45. assert_not_equal @user.reload.name, "Wrong Name"
  46. end
  47. test "should redirect edit when logged in as wrong user" do
  48. log_in_as(@other_user)
  49. get edit_user_path(@user)
  50. assert flash.empty?
  51. assert_redirected_to root_url
  52. end
  53. test "should redirect update when logged in as wrong user" do
  54. log_in_as(@other_user)
  55. patch user_path(@user), params: { user: { name: @user.name,
  56. email: @user.email } }
  57. assert flash.empty?
  58. assert_redirected_to root_url
  59. end
  60. end