package datacheck_nextgen_test

import (
	"context"
	"testing"
	"time"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/observability/test/ft/common/checkernextgen"
)

type Config struct {
	Cluster   checkernextgen.ClusterInfo `yaml:"cluster"`
	TimeRange checkernextgen.TimeRange   `yaml:"timeRange"`
	AuthToken string                     `yaml:"authToken"`
}

func TestO11yData(t *testing.T) {
	deadline, ok := t.Deadline()
	if !ok {
		deadline = time.Now().Add(10 * time.Minute)
	}
	ctx, cancel := context.WithDeadline(context.Background(), deadline)
	defer cancel()

	// queryReq := message.QueryClustersReq{
	// 	CommonReqInfo: structs.CommonReqInfo{
	// 		Vendor: constants.ProvidedVendor(cfg.Cluster.Provider),
	// 		Region: cfg.Cluster.Region,
	// 	},
	// 	BizType:       GetBizTypeByEnv(cfg.Cluster.Env),
	// 	TenantID:      cfg.Cluster.TenantID,
	// 	ApplicationID: cfg.Cluster.ClusterID,
	// }
	// o11yclusters := utils.QueryCluster(queryReq)
	// if len(o11yclusters.Clusters) == 0 {
	// 	require.FailNow(t, "no cluster found")
	// }
	// cfg.Cluster.O11yID = o11yclusters.Clusters[0].ID

	_, err := checkernextgen.CheckAll(ctx, cfg.Cluster, cfg.TimeRange, cfg.AuthToken, func(dt checkernextgen.DataType) error {
		require.FailNow(t, "data not found", dt)
		return nil
	})
	require.NoError(t, err)
}
