delete_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package user_test
  2. import (
  3. "testing"
  4. "github.com/porter-dev/porter/api/server/handlers/user"
  5. "github.com/porter-dev/porter/api/server/shared"
  6. "github.com/porter-dev/porter/api/server/shared/apitest"
  7. "github.com/porter-dev/porter/api/types"
  8. "github.com/porter-dev/porter/internal/repository/test"
  9. "github.com/stretchr/testify/assert"
  10. "gorm.io/gorm"
  11. )
  12. func TestDeleteUserSuccessful(t *testing.T) {
  13. req, rr := apitest.GetRequestAndRecorder(
  14. t,
  15. string(types.HTTPVerbDelete),
  16. "/api/users/current",
  17. nil,
  18. )
  19. config := apitest.LoadConfig(t)
  20. authUser := apitest.CreateTestUser(t, config, true)
  21. req = apitest.WithAuthenticatedUser(t, req, authUser)
  22. handler := user.NewUserDeleteHandler(
  23. config,
  24. shared.NewDefaultResultWriter(config.Logger, config.Alerter),
  25. )
  26. handler.ServeHTTP(rr, req)
  27. expUser := &types.CreateUserResponse{
  28. ID: 1,
  29. Email: "test@test.it",
  30. EmailVerified: true,
  31. }
  32. gotUser := &types.CreateUserResponse{}
  33. apitest.AssertResponseExpected(t, rr, expUser, gotUser)
  34. // assert that the user has been deleted
  35. authUser, err := config.Repo.User().ReadUser(1)
  36. targetErr := gorm.ErrRecordNotFound
  37. assert.ErrorIs(t, err, targetErr)
  38. }
  39. func TestFailingDeleteUserMethod(t *testing.T) {
  40. req, rr := apitest.GetRequestAndRecorder(
  41. t,
  42. string(types.HTTPVerbDelete),
  43. "/api/users/current",
  44. nil,
  45. )
  46. config := apitest.LoadConfig(t, test.DeleteUserMethod)
  47. authUser := apitest.CreateTestUser(t, config, true)
  48. req = apitest.WithAuthenticatedUser(t, req, authUser)
  49. handler := user.NewUserDeleteHandler(
  50. config,
  51. shared.NewDefaultResultWriter(config.Logger, config.Alerter),
  52. )
  53. handler.ServeHTTP(rr, req)
  54. apitest.AssertResponseInternalServerError(t, rr)
  55. }