package integration

import (
	"context"

	. "github.com/onsi/ginkgo/v2"
	. "github.com/onsi/gomega"
	cloudv1 "github.com/tidbcloud/infra-api/api/v1"
	cdcv1 "github.com/tidbcloud/ticdc-service/api/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var _ = Describe("SinkEndpoint Controller", func() {
	Context("When reconciling a resource", func() {
		It("Should create a SinkEndpoint without error", func() {
			const resourceName = "test-endpoint"
			ctx := context.Background()

			ep := &cdcv1.SinkEndpoint{
				ObjectMeta: metav1.ObjectMeta{
					Name:      resourceName,
					Namespace: "default",
					Labels: map[string]string{
						cloudv1.TenantTagKey:  "999",
						cloudv1.ProjectTagKey: "888",
						cloudv1.ClusterTagKey: "123",
					},
				},
				Spec: cdcv1.SinkEndpointSpec{
					ServiceName:    "kafka",
					AppBoxID:       "123",
					RootDomainName: "tidb.com",
					DNSRecords: []cdcv1.DNSRecord{
						{
							AvailabilityZone: "eastus1",
							RecordName:       "kf",
						},
					},
				},
			}
			Expect(k8sClient.Create(ctx, ep)).To(Succeed())
		})
	})
})
