clusterinfo_test.go 1.0 KB

12345678910111213141516171819202122232425262728
  1. package test
  2. import (
  3. "testing"
  4. "github.com/opencost/opencost/pkg/prom"
  5. "github.com/opencost/opencost/pkg/util/json"
  6. )
  7. func TestClusterInfoLabels(t *testing.T) {
  8. expected := map[string]bool{"clusterprofile": true, "errorreporting": true, "id": true, "logcollection": true, "name": true, "productanalytics": true, "provider": true, "provisioner": true, "remotereadenabled": true, "thanosenabled": true, "valuesreporting": true, "version": true}
  9. clusterInfo := `{"clusterProfile":"production","errorReporting":"true","id":"cluster-one","logCollection":"true","name":"bolt-3","productAnalytics":"true","provider":"GCP","provisioner":"GKE","remoteReadEnabled":"false","thanosEnabled":"false","valuesReporting":"true","version":"1.14+"}`
  10. var m map[string]interface{}
  11. err := json.Unmarshal([]byte(clusterInfo), &m)
  12. if err != nil {
  13. t.Errorf("Error: %s", err)
  14. return
  15. }
  16. labels := prom.MapToLabels(m)
  17. for k := range expected {
  18. if _, ok := labels[k]; !ok {
  19. t.Errorf("Failed to locate key: \"%s\" in labels.", k)
  20. return
  21. }
  22. }
  23. }