Files
fleet/tools/terraform/fleetdm_client/fleetdm_client_test.go
T
Noah TalermanandRachael Shaw 62c1033868 tools/ directory: Rename "queries" => "reports" and "teams" => "fleets" (#43575)
For the following issue:
- https://github.com/fleetdm/fleet/issues/41419


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Updated tooling and documentation wording across scripts, utilities,
and infrastructure files to reflect the product terminology change from
“teams” to “fleets” (references now note “fleets” and indicate the
former “teams” naming).
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Rachael Shaw <r@rachael.wtf>
2026-05-07 10:42:39 -05:00

94 lines
3.2 KiB
Go

package fleetdm_client
import (
"encoding/json"
"github.com/stretchr/testify/require"
"math/rand"
"os"
"testing"
)
var letters = []rune("abcdefghijklmnopqrstuvwxyz")
var defaultDescription = "Awesome description"
var defaultAgentOptions = `{"config":{"decorators":{"load":["SELECT uuid AS host_uuid FROM system_info;","SELECT hostname AS hostname FROM system_info;"]},"options":{"disable_distributed":false,"distributed_interval":10,"distributed_plugin":"tls","distributed_tls_max_attempts":3,"logger_tls_endpoint":"/api/osquery/log","logger_tls_period":10,"pack_delimiter":"/"}},"overrides":{}}`
func randTeam() string {
b := make([]rune, 6)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return "aaa-" + string(b)
}
func TestBasic(t *testing.T) {
apiKey := os.Getenv("FLEETDM_APIKEY")
if apiKey == "" {
t.Skip("FLEETDM_APIKEY not set")
}
apiURL := os.Getenv("FLEETDM_URL")
if apiURL == "" {
t.Skip("FLEETDM_URL not set")
}
client := NewFleetDMClient(apiURL, apiKey)
require.NotNil(t, client)
// Create a nice default fleet (formerly "team")
teamName := randTeam()
team, err := client.CreateTeam(teamName, defaultDescription)
require.NoError(t, err)
require.NotNil(t, team)
require.Equal(t, teamName, team.Team.Name)
require.Equal(t, defaultDescription, team.Team.Description)
aoBytes, err := json.Marshal(team.Team.AgentOptions)
require.NoError(t, err)
require.Equal(t, defaultAgentOptions, string(aoBytes))
// And verify we can get that team back
teamGotten, err := client.GetTeam(team.Team.ID)
require.NoError(t, err)
require.NotNil(t, teamGotten)
require.Equal(t, team.Team.ID, teamGotten.Team.ID)
require.Equal(t, team.Team.Name, teamGotten.Team.Name)
require.Equal(t, teamName, teamGotten.Team.Name)
require.Equal(t, defaultDescription, teamGotten.Team.Description)
aoBytes, err = json.Marshal(teamGotten.Team.AgentOptions)
require.NoError(t, err)
require.Equal(t, defaultAgentOptions, string(aoBytes))
// Set different agent options
newAO := `{"command_line_flags":{"disable_events":true},"config":{"options":{"logger_tls_endpoint":"/test"}},"overrides":{}}`
teamAO, err := client.UpdateAgentOptions(team.Team.ID, newAO)
require.NoError(t, err)
require.NotNil(t, teamAO)
require.Equal(t, team.Team.ID, teamAO.Team.ID)
aoBytes, err = json.Marshal(teamAO.Team.AgentOptions)
require.NoError(t, err)
require.Equal(t, newAO, string(aoBytes))
// Set a different description and different name
newName := randTeam()
newDescription := "New description"
teamUp, err := client.UpdateTeam(team.Team.ID, &newName, &newDescription)
require.NoError(t, err)
require.NotNil(t, teamUp)
require.Equal(t, team.Team.ID, teamUp.Team.ID)
require.Equal(t, newName, teamUp.Team.Name)
require.Equal(t, newDescription, teamUp.Team.Description)
// Lookup the team based on the new name
teamId, err := client.TeamNameToID(newName)
require.NoError(t, err)
require.NotEqual(t, 0, teamId)
require.Equal(t, teamUp.Team.ID, teamId)
require.Equal(t, newName, teamUp.Team.Name)
// And finally, delete the team
err = client.DeleteTeam(team.Team.ID)
require.NoError(t, err)
// And verify it's gone
teamDNE, err := client.GetTeam(team.Team.ID)
require.Error(t, err)
require.Nil(t, teamDNE)
}