package globalservice

import (
	"context"
	"os"
	"testing"

	"github.com/tidbcloud/observability/pkg/common/metrics"
	metaservice "github.com/tidbcloud/observability/pkg/metamanager/etcd"
	testClient "k8s.io/client-go/kubernetes/fake"
)

func TestMain(m *testing.M) {
	metrics.SetupMetrics()

	cli := testClient.NewSimpleClientset()
	err := metaservice.NewConfigMapMetaService(cli).CreateMeta(context.TODO(), globalServerNsAndCmName, `
		{
			"vendors": {
				"aws": [
					{
						"region": "us-west-2",
						"routers": [{
							"dnsAddress": "http://127.0.0.1:8082",
							"primary": true
						},{
							"dnsAddress": "http://127.0.0.1:8083"
						}]
					}
				]
			},
			"auth0": {
				"issuerUrl": "https://test.us.auth0.com/",
				"audience": "https://test.us.auth0.com/api/v2/"
			}
		}
		`)
	if err != nil {
		panic(err)
	}

	err = NewManager(context.TODO(), testClient.NewSimpleClientset())
	if err != nil {
		panic(err)
	}

	code := m.Run()
	os.Exit(code)
}
