package diagnosis

import (
	"testing"

	"github.com/gin-gonic/gin"

	"go.uber.org/fx"
	"go.uber.org/fx/fxtest"

	"github.com/pingcap-inc/clinic/pkg/config"
)

func TestFxModule(t *testing.T) {
	addrCfg := config.VMClusterAddressConfig{
		AddressConfig: config.AddressConfig{
			Host: "localhost",
			Port: 8080,
		},
	}

	cfg := &config.Config{
		DiagnosisConfig: config.DiagnosisConfig{
			MetricConfig: config.MetricSingleEndpointConfig{
				VMClusterAddressConfig: addrCfg,
				SelectAddr:             addrCfg,
			},
			LogConfig: config.LogConfig{
				Endpoint: "http://localhost:8082",
			},
		},
	}
	app := fxtest.New(
		t,
		fx.Supply(&gin.Default().RouterGroup, cfg),
		Module,
	)
	app.RequireStart()
	app.RequireStop()
}
