github.com/esnet/gdg@v0.6.1-0.20240412190737-6b6eba9c14d8/test/team_integration_test.go (about)

     1  package test
     2  
     3  import (
     4  	"github.com/esnet/gdg/internal/service"
     5  	"github.com/grafana/grafana-openapi-client-go/models"
     6  	"golang.org/x/exp/maps"
     7  	"log/slog"
     8  	"os"
     9  	"testing"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestTeamCRUD(t *testing.T) {
    15  	if testing.Short() {
    16  		t.Skip("skipping integration test")
    17  	}
    18  	if os.Getenv("TEST_TOKEN_CONFIG") == "1" {
    19  		t.Skip("Skipping Token configuration, Team and User CRUD requires Basic SecureData")
    20  	}
    21  	filter := service.NewTeamFilter("")
    22  	apiClient, _, cleanup := initTest(t, nil)
    23  	defer cleanup()
    24  	slog.Info("Exporting current user list")
    25  	apiClient.UploadUsers(service.NewUserFilter(""))
    26  	users := apiClient.ListUsers(service.NewUserFilter(""))
    27  	assert.Equal(t, len(users), 2)
    28  	slog.Info("Exporting all teams")
    29  	apiClient.UploadTeams(filter)
    30  	slog.Info("Listing all Teams")
    31  	teamsMap := apiClient.ListTeams(filter)
    32  	teams := maps.Keys(teamsMap)
    33  	assert.Equal(t, len(teams), 2)
    34  	var engineerTeam *models.TeamDTO
    35  	var musicianTeam *models.TeamDTO
    36  	for ndx, team := range teams {
    37  		if team.Name == "engineers" {
    38  			engineerTeam = teams[ndx]
    39  		} else if team.Name == "musicians" {
    40  			musicianTeam = teams[ndx]
    41  		}
    42  	}
    43  	assert.Equal(t, engineerTeam.Name, "engineers")
    44  	engineers := teamsMap[engineerTeam]
    45  	assert.Equal(t, len(engineers), 2)
    46  	assert.Equal(t, engineers[1].Login, "tux")
    47  	assert.Equal(t, musicianTeam.Name, "musicians")
    48  	//Import Teams
    49  	slog.Info("Importing teams")
    50  	list := apiClient.DownloadTeams(filter)
    51  	assert.Equal(t, len(list), len(teams))
    52  	//CleanUp
    53  	_, err := apiClient.DeleteTeam(filter)
    54  	assert.Nil(t, err)
    55  	//Remove Users
    56  	apiClient.DeleteAllUsers(service.NewUserFilter(""))
    57  
    58  }