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 }