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  }