API de comptabilité horaire.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

memberships_controller_test.rb 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. require "test_helper"
  2. class Api::V1::MembershipsControllerTest < ActionDispatch::IntegrationTest
  3. setup do
  4. @membership = memberships(:one)
  5. @user = users(:one)
  6. @user2 = users(:two)
  7. @team = teams(:one)
  8. @team2 = teams(:two)
  9. end
  10. # INDEX
  11. test "should access Membership index - specifix team" do
  12. get api_v1_team_memberships_url(@team),
  13. headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  14. as: :json
  15. assert_response :success
  16. json_response = JSON.parse(self.response.body)
  17. assert_equal @membership.member_id, json_response['data'][0]['attributes']['member_id']
  18. end
  19. test "should access Membership index - all teams" do
  20. get api_v1_memberships_url,
  21. headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  22. as: :json
  23. assert_response :success
  24. end
  25. test "should not access Membership index" do
  26. get api_v1_team_memberships_url(@team),
  27. as: :json
  28. assert_response :forbidden
  29. end
  30. # SHOW
  31. test "should show Membership" do
  32. get api_v1_team_memberships_url(@team, @membership),
  33. headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  34. as: :json
  35. assert_response :success
  36. end
  37. test "should forbid show Membership" do
  38. get api_v1_team_memberships_url(@team, @membership),
  39. as: :json
  40. assert_response :forbidden
  41. end
  42. # CREATE
  43. # test "should create membership" do
  44. # assert_difference("Membership.count") do
  45. # post api_v1_memberships_url,
  46. # params: { membership: { team_id: @team2.id, member_id: @user2.id, can_edit: false } },
  47. # headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  48. # as: :json
  49. # end
  50. # assert_response :created
  51. # end
  52. # test "should forbid create membership" do
  53. # assert_no_difference("Membership.count") do
  54. # post api_v1_memberships_url,
  55. # params: { membership: { team_id: @team.id, member_id: @user.id, can_edit: false } },
  56. # as: :json
  57. # end
  58. # assert_response :forbidden
  59. # end
  60. # # UPDATE
  61. # test "should update membership" do
  62. # patch api_v1_membership_url(@membership),
  63. # headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  64. # params: { membership: { can_edit: true } },
  65. # as: :json
  66. # assert_response :success
  67. # end
  68. # test "should forbid update membership" do
  69. # patch api_v1_membership_url(@membership),
  70. # params: { membership: { can_edit: true } },
  71. # as: :json
  72. # assert_response :forbidden
  73. # end
  74. # test "should forbid update read_only attributes - team_id" do
  75. # patch api_v1_membership_url(@membership),
  76. # headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  77. # params: { membership: { team_id: @team2.id, member_id: @user2.id } },
  78. # as: :json
  79. # assert_response :unprocessable_entity
  80. # end
  81. # # DESTROY
  82. # test "should destroy membership" do
  83. # assert_difference('Membership.count', -1) do
  84. # delete api_v1_membership_url(@membership),
  85. # headers: { Authorization: JsonWebToken.encode(user_id: @user.id) },
  86. # as: :json
  87. # end
  88. # assert_response :no_content
  89. # end
  90. # test "should forbid destroy membership" do
  91. # assert_no_difference('Membership.count') do
  92. # delete api_v1_membership_url(@membership), as: :json
  93. # end
  94. # assert_response :forbidden
  95. # end
  96. end