package http

import (
	"reflect"
	"testing"

	"github.com/VictoriaMetrics/VictoriaMetrics/lib/promutils"
)

func TestParseAPIResponse(t *testing.T) {
	f := func(data, path string, resultExpected []httpGroupTarget) {
		t.Helper()

		result, err := parseAPIResponse([]byte(data), path)
		if err != nil {
			t.Fatalf("parseAPIResponse() error: %s", err)
		}
		if !reflect.DeepEqual(result, resultExpected) {
			t.Fatalf("unexpected result\ngot\n%v\nwant\n%v", result, resultExpected)
		}
	}

	// parse ok
	data := `[
                {"targets": ["http://target-1:9100","http://target-2:9150"],
                "labels": {"label-1":"value-1"} }
                ]`
	path := "/ok"
	resultExpected := []httpGroupTarget{
		{
			Labels:  promutils.NewLabelsFromMap(map[string]string{"label-1": "value-1"}),
			Targets: []string{"http://target-1:9100", "http://target-2:9150"},
		},
	}
	f(data, path, resultExpected)
}