Skip to main content
Glama

Portainer MCP

Official
by portainer
zlib License
67
  • Linux
  • Apple
team_test.go2.25 kB
package models import ( "reflect" "testing" "github.com/portainer/client-api-go/v2/pkg/models" ) func TestConvertToTeam(t *testing.T) { tests := []struct { name string team *models.PortainerTeam memberships []*models.PortainerTeamMembership expectedTeam Team }{ { name: "team with multiple members", team: &models.PortainerTeam{ ID: 1, Name: "DevOps", }, memberships: []*models.PortainerTeamMembership{ {TeamID: 1, UserID: 100}, {TeamID: 1, UserID: 101}, {TeamID: 1, UserID: 102}, {TeamID: 2, UserID: 200}, // Different team, should be ignored }, expectedTeam: Team{ ID: 1, Name: "DevOps", MemberIDs: []int{100, 101, 102}, }, }, { name: "team with no members", team: &models.PortainerTeam{ ID: 2, Name: "Empty Team", }, memberships: []*models.PortainerTeamMembership{ {TeamID: 1, UserID: 100}, // Different team {TeamID: 3, UserID: 300}, // Different team }, expectedTeam: Team{ ID: 2, Name: "Empty Team", MemberIDs: []int{}, }, }, { name: "team with single member", team: &models.PortainerTeam{ ID: 3, Name: "Solo Team", }, memberships: []*models.PortainerTeamMembership{ {TeamID: 3, UserID: 300}, }, expectedTeam: Team{ ID: 3, Name: "Solo Team", MemberIDs: []int{300}, }, }, { name: "team with empty memberships list", team: &models.PortainerTeam{ ID: 4, Name: "New Team", }, memberships: []*models.PortainerTeamMembership{}, expectedTeam: Team{ ID: 4, Name: "New Team", MemberIDs: []int{}, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := ConvertToTeam(tt.team, tt.memberships) if result.ID != tt.expectedTeam.ID { t.Errorf("ID mismatch: got %v, want %v", result.ID, tt.expectedTeam.ID) } if result.Name != tt.expectedTeam.Name { t.Errorf("Name mismatch: got %v, want %v", result.Name, tt.expectedTeam.Name) } if !reflect.DeepEqual(result.MemberIDs, tt.expectedTeam.MemberIDs) { t.Errorf("MemberIDs mismatch: got %v, want %v", result.MemberIDs, tt.expectedTeam.MemberIDs) } }) } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/portainer/portainer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server