package changefeed

import (
	"fmt"
	"time"

	"github.com/tidbcloud/dataflow-service-e2e/cases"
	. "github.com/tidbcloud/dataflow-service-e2e/internal/model"
	"github.com/tidbcloud/dataflow-service-e2e/internal/tidbcloud/essential"
)

func cleanupChangefeed(c *cases.BaseCase, client essential.CDCClient, cluster *TiDBServerlessEntity, id string) {
	if id == "" {
		return
	}
	c.RetryDo("delete CDC changefeed", func() error { return client.Delete(c.CleanupContext(), cluster, id) }, 3, time.Minute)
	c.Expect("CDC changefeed deleted", func() error {
		exists, err := client.Exists(c.CleanupContext(), cluster, id)
		if err != nil {
			return err
		}
		if exists {
			return fmt.Errorf("changefeed %s still exists", id)
		}
		return nil
	}, 30, 15*time.Second)
}
