package metric

import (
	"testing"

	dto "github.com/prometheus/client_model/go"
	"github.com/stretchr/testify/require"
)

func TestExportTerminalStateTotalIncludesExportID(t *testing.T) {
	ExportTerminalStateTotal.Reset()

	metric, err := ExportTerminalStateTotal.GetMetricWithLabelValues(
		"cluster-1", "export-1", "failed",
	)
	require.NoError(t, err)

	labels := make(map[string]string)
	written := &dto.Metric{}
	require.NoError(t, metric.Write(written))
	for _, label := range written.Label {
		labels[label.GetName()] = label.GetValue()
	}
	require.Equal(t, map[string]string{
		"cluster_id": "cluster-1",
		"export_id":  "export-1",
		"state":      "failed",
	}, labels)
}
