2
0

delete_test.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. FirstName: "Mister",
  30. LastName: "Porter",
  31. CompanyName: "Porter Technologies, Inc.",
  32. Email: "mrp@porter.run",
  33. EmailVerified: true,
  34. }
  35. gotUser := &types.CreateUserResponse{}
  36. apitest.AssertResponseExpected(t, rr, expUser, gotUser)
  37. // assert that the user has been deleted
  38. authUser, err := config.Repo.User().ReadUser(1)
  39. targetErr := gorm.ErrRecordNotFound
  40. assert.ErrorIs(t, err, targetErr)
  41. }
  42. func TestFailingDeleteUserMethod(t *testing.T) {
  43. req, rr := apitest.GetRequestAndRecorder(
  44. t,
  45. string(types.HTTPVerbDelete),
  46. "/api/users/current",
  47. nil,
  48. )
  49. config := apitest.LoadConfig(t, test.DeleteUserMethod)
  50. authUser := apitest.CreateTestUser(t, config, true)
  51. req = apitest.WithAuthenticatedUser(t, req, authUser)
  52. handler := user.NewUserDeleteHandler(
  53. config,
  54. shared.NewDefaultResultWriter(config.Logger, config.Alerter),
  55. )
  56. handler.ServeHTTP(rr, req)
  57. apitest.AssertResponseInternalServerError(t, rr)
  58. }