package apikey

// import (
// 	"fmt"
// 	"os"
// 	"strings"
// 	"testing"

// 	"github.com/tidbcloud/metrics-server/central/db"
// 	"github.com/tidbcloud/metrics-server/central/db/entity"
// 	"github.com/tidbcloud/metrics-server/central/model/tenant"
// 	"github.com/tidbcloud/metrics-server/pkg/docker_db"
// 	"github.com/stretchr/testify/assert"
// )

// var (
// 	tenantID int64
// 	user     entity.User
// )

// func init() {
// 	err := docker_db.TryInitCentralDB(tenant.InitTenants)
// 	if err != nil {
// 		fmt.Println("failed to initialize DB %!", err)
// 		os.Exit(1)
// 	}
// 	tenantID = tenant.GetAllTenantIDs()[0]
// 	users, err := db.ListUsers(tenant.GetDB(tenantID))
// 	if err != nil {
// 		fmt.Println("failed to list users %!", err)
// 		os.Exit(1)
// 	}
// 	user = users[0]
// }

// func TestCreateVerifyAPIKey(t *testing.T) {
// 	model, err := AuthenticateAPIKey("foo")
// 	assert.Nil(t, err)
// 	assert.Nil(t, model)

// 	model, err = AuthenticateAPIKey(BearerAPIKeyPrefix)
// 	assert.Nil(t, err)
// 	assert.Nil(t, model)

// 	key, err := CreateAPIKey(tenantID, user.ID, "test key")
// 	assert.Nil(t, err)
// 	assert.NotEmpty(t, key)
// 	fmt.Println(key)

// 	model, err = AuthenticateAPIKey(key)
// 	assert.NotNil(t, model)
// 	assert.Nil(t, err)

// 	model, err = AuthenticateAPIKey(key + "xx") // Mismatch API key
// 	assert.Nil(t, model)
// 	assert.Nil(t, err)

// 	model, err = AuthenticateAPIKey(strings.Replace(key, BearerAPIKeyPrefix, "XX", 1)) // Mismatch prefix
// 	assert.Nil(t, model)
// 	assert.Nil(t, err)

// 	// Create a key for another tenant
// 	tenantID2 := tenantID + 1
// 	key2, err := CreateAPIKey(tenantID2, user.ID, "test key 2")
// 	assert.Nil(t, err)
// 	assert.NotEmpty(t, key2)

// 	// Old API key remains valid
// 	model, err = AuthenticateAPIKey(key)
// 	assert.NotNil(t, model)
// 	assert.Nil(t, err)

// 	model, err = AuthenticateAPIKey(key2)
// 	assert.NotNil(t, model)
// 	assert.Nil(t, err)
// }
