github.com/nilium/gitlab-runner@v12.5.0+incompatible/helpers/prometheus/failures_collector_test.go (about) 1 package prometheus 2 3 import ( 4 "testing" 5 6 "github.com/prometheus/client_golang/prometheus" 7 prometheus_go "github.com/prometheus/client_model/go" 8 "github.com/stretchr/testify/assert" 9 10 "gitlab.com/gitlab-org/gitlab-runner/common" 11 ) 12 13 func TestFailuresCollector_Collect_GroupingReasons(t *testing.T) { 14 ch := make(chan prometheus.Metric, 50) 15 16 fc := NewFailuresCollector() 17 fc.RecordFailure(common.ScriptFailure, "a1b2c3d4") 18 fc.RecordFailure(common.RunnerSystemFailure, "e5f67890") 19 20 fc.Collect(ch) 21 assert.Len(t, ch, 2) 22 } 23 24 func TestFailuresCollector_Collect_MetricsValues(t *testing.T) { 25 ch := make(chan prometheus.Metric, 50) 26 27 fc := NewFailuresCollector() 28 fc.RecordFailure(common.ScriptFailure, "a1b2c3d4") 29 fc.RecordFailure(common.ScriptFailure, "a1b2c3d4") 30 31 fc.Collect(ch) 32 33 metric := &prometheus_go.Metric{} 34 m := <-ch 35 m.Write(metric) 36 37 labels := make(map[string]string) 38 for _, labelPair := range metric.Label { 39 labels[*labelPair.Name] = *labelPair.Value 40 } 41 42 assert.Equal(t, float64(2), *metric.Counter.Value) 43 assert.Equal(t, string(common.ScriptFailure), labels["failure_reason"]) 44 assert.Equal(t, "a1b2c3d4", labels["runner"]) 45 }