Antonio Mika
·
2026-10-25
1package metrics
2
3import (
4 "testing"
5
6 "github.com/prometheus/client_golang/prometheus"
7)
8
9func TestRegisterServerInfo(t *testing.T) {
10 t.Setenv("NODENAME", "ash")
11 reg := prometheus.NewRegistry()
12
13 RegisterServerInfoCommit(reg, "pgs", "abc123")
14
15 families, err := reg.Gather()
16 if err != nil {
17 t.Fatalf("gather: %v", err)
18 }
19 if len(families) != 1 || families[0].GetName() != "pico_server_info" {
20 t.Fatalf("got %d families, want only pico_server_info", len(families))
21 }
22 m := families[0].GetMetric()[0]
23 labels := map[string]string{}
24 for _, l := range m.GetLabel() {
25 labels[l.GetName()] = l.GetValue()
26 }
27 if labels["app"] != "pgs" || labels["nodename"] != "ash" || labels["commit"] != "abc123" {
28 t.Errorf("labels = %v, want app=pgs nodename=ash commit=abc123", labels)
29 }
30 if got := m.GetGauge().GetValue(); got != 1 {
31 t.Errorf("value = %v, want 1", got)
32 }
33}