github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/testhelpers/e2e/clean.go (about) 1 package e2e 2 3 import ( 4 "testing" 5 6 "github.com/ActiveState/cli/internal/errs" 7 "github.com/ActiveState/cli/pkg/platform/api/mono/mono_client/projects" 8 "github.com/ActiveState/cli/pkg/platform/api/mono/mono_client/users" 9 "github.com/ActiveState/cli/pkg/platform/api/mono/mono_models" 10 "github.com/ActiveState/cli/pkg/platform/authentication" 11 "github.com/ActiveState/cli/pkg/platform/model" 12 ) 13 14 func cleanUser(t *testing.T, username string, auth *authentication.Auth) error { 15 projects, err := getProjects(username, auth) 16 if err != nil { 17 return err 18 } 19 for _, proj := range projects { 20 err = model.DeleteProject(username, proj.Name, auth) 21 if err != nil { 22 return err 23 } 24 } 25 26 return deleteUser(username, auth) 27 } 28 29 func getProjects(org string, auth *authentication.Auth) ([]*mono_models.Project, error) { 30 authClient, err := auth.Client() 31 if err != nil { 32 return nil, errs.Wrap(err, "Could not get auth client") 33 } 34 params := projects.NewListProjectsParams() 35 params.SetOrganizationName(org) 36 listProjectsOK, err := authClient.Projects.ListProjects(params, auth.ClientAuth()) 37 if err != nil { 38 return nil, err 39 } 40 41 return listProjectsOK.Payload, nil 42 } 43 44 func deleteUser(name string, auth *authentication.Auth) error { 45 authClient, err := auth.Client() 46 if err != nil { 47 return errs.Wrap(err, "Could not get auth client") 48 } 49 50 params := users.NewDeleteUserParams() 51 params.SetUsername(name) 52 53 _, err = authClient.Users.DeleteUser(params, auth.ClientAuth()) 54 if err != nil { 55 return err 56 } 57 58 return nil 59 }