package server

import (
	"context"
	"testing"

	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

	agentv2 "github.com/tidbcloud/observability/agent-control-server/api/v2"
	"github.com/tidbcloud/observability/agent-control-server/pkg/config"
	"github.com/tidbcloud/observability/agent-control-server/pkg/consts"
	"github.com/tidbcloud/observability/agent-control-server/pkg/testkits"
)

func TestListAgentsOnlyReturnsOwnedNamespace(t *testing.T) {
	t.Parallel()

	cli := testkits.BuildClient(
		&agentv2.KubernetesAgent{ObjectMeta: metav1.ObjectMeta{Namespace: "cp9-premium", Name: "premium-agent"}},
		&agentv2.KubernetesAgent{ObjectMeta: metav1.ObjectMeta{Namespace: "cp-byoc", Name: "byoc-agent"}},
	)
	s := New(":8080", cli, &config.RootConfig{}, "cp9-premium")

	got, err := s.listAgents(context.Background(), consts.AgentKubernetes, agentFilter{})
	if err != nil {
		t.Fatalf("list agents: %v", err)
	}
	if len(got) != 1 || got[0].Name != "premium-agent" {
		t.Fatalf("expected only premium-agent, got %#v", got)
	}
}
