package rbac_test

import (
	"flag"
	"fmt"
	"os"
	"testing"

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

var cfg *config.Config

func TestMain(m *testing.M) {
	flag.Parse()
	// if -test.short is set, run testing with external dependency.
	// so for run unit test for debug propose, add -test.short.
	if testing.Short() {
		os.Exit(m.Run())
	}
	// if -test.short is not set, run testing with external dependency.
	fmt.Println("init db for testing")
	// clear testing environment
	impl.ReleaseAll()
	_ = db_docker.TryInitDB()
	cfg = &config.Config{
		DBConfig: &config.DBConfig{
			User:     "root", // centralDockerDB.User,
			Host:     db_docker.DockerDB.Host,
			Port:     db_docker.DockerDB.Port,
			Password: db_docker.DockerDB.Password,
			Database: "unittest",
		},
	}
	code := m.Run()
	// clear testing environment
	impl.ReleaseAll()
	os.Exit(code)
}
