package vm

import (
	"os"
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/observability/o11ydiagnosis/pkg/topsql/api"
)

func TestExtractInstance(t *testing.T) {
	body, err := os.ReadFile("testdata/response-instance.json")
	require.NoError(t, err)

	res, err := extractInstances(body)
	require.NoError(t, err)

	expected := []api.InstanceItem{
		{
			Instance:     "db-tidb-0.db-tidb-peer.tidb63307.svc:10080",
			InstanceType: "tidb",
		},
		{
			Instance:     "db-tikv-0.db-tikv-peer.tidb63307.svc:20160",
			InstanceType: "tikv",
		},
		{
			Instance:     "db-tikv-1.db-tikv-peer.tidb63307.svc:20160",
			InstanceType: "tikv",
		},
		{
			Instance:     "db-tikv-2.db-tikv-peer.tidb63307.svc:20160",
			InstanceType: "tikv",
		},
	}
	require.Equal(t, expected, res)
}
