package infraapi

import (
	"context"
	"testing"

	"github.com/stretchr/testify/assert"
	cloudv1 "github.com/tidbcloud/infra-api/api/v1"
	"sigs.k8s.io/controller-runtime/pkg/client/fake"
)

func TestTicdc(t *testing.T) {
	var (
		client = fake.NewFakeClientWithScheme(scheme)
		api    = &API{
			projectName: "test",
			client:      client,
		}
		ctx = context.Background()

		projectID = uint64(456)
		clusterID = uint64(789)
	)

	// no cdc exist, reposrt error
	_, err := api.GetTicdc(ctx, projectID, clusterID)
	assert.NotNil(t, err)

	// create cdc
	err = api.CreateTicdcIgnoreExist(ctx, projectID, clusterID, &cloudv1.TiCDC{})
	assert.Nil(t, err)

	// get cdc
	cdc, err := api.GetTicdc(ctx, projectID, clusterID)
	assert.Nil(t, err)
	assert.Equal(t, cdc.Name, TicdcName(clusterID))
}
