package integration

import (
	"os"
	"path/filepath"
	"testing"

	"github.com/tidbcloud/aws-shared-provider/tools/cloud-instances/internal/cli"
)

func TestLoadAliyunCredentials(t *testing.T) {
	home := t.TempDir()
	t.Setenv("HOME", home)

	configDir := filepath.Join(home, ".aliyun")
	if err := os.MkdirAll(configDir, 0700); err != nil {
		t.Fatalf("mkdir: %v", err)
	}

	config := `{
		"current": "default",
		"profiles": [
			{
				"name": "default",
				"access_key_id": "ak",
				"access_key_secret": "sk",
				"security_token": "token"
			}
		]
	}`

	if err := os.WriteFile(filepath.Join(configDir, "config.json"), []byte(config), 0600); err != nil {
		t.Fatalf("write config: %v", err)
	}

	creds, err := cli.LoadAliyunCredentials()
	if err != nil {
		t.Fatalf("load creds: %v", err)
	}
	if creds.AccessKey != "ak" || creds.SecretKey != "sk" || creds.Token != "token" {
		t.Fatalf("unexpected creds: %+v", creds)
	}
}
