Files
upstream-centrifugo/internal/usage/usage_test.go
upstream-mirror b352a9a30d
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s
snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:17:21 +05:00

83 lines
1.7 KiB
Go

package usage
import (
"testing"
"github.com/centrifugal/centrifugo/v6/internal/config"
"github.com/centrifugal/centrifuge"
"github.com/stretchr/testify/require"
)
func Test_getHistogramMetric(t *testing.T) {
type args struct {
val int
bounds []int
metricPrefix string
}
tests := []struct {
name string
args args
want string
}{
{
"1",
args{0, []int{0, 10, 100, 1000, 10000, 100000}, "users."},
"users.le_0",
},
{
"2",
args{10, []int{0, 10, 100, 1000, 10000, 100000}, "users."},
"users.le_10",
},
{
"3",
args{30000, []int{0, 10, 100, 1000, 10000, 100000}, "users."},
"users.le_100k",
},
{
"4",
args{3000000, []int{0, 10, 100, 1000, 10000, 100000, 10000000}, "users."},
"users.le_10m",
},
{
"5",
args{300000, []int{0, 10, 100, 1000, 10000, 100000}, "users."},
"users.le_inf",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := getHistogramMetric(tt.args.val, tt.args.bounds, tt.args.metricPrefix); got != tt.want {
t.Errorf("getHistogramMetric() = %v, want %v", got, tt.want)
}
})
}
}
func nodeWithMemoryEngine(t *testing.T) *centrifuge.Node {
n, err := centrifuge.New(centrifuge.Config{})
if err != nil {
t.Fatal(err)
}
err = n.Run()
if err != nil {
t.Fatal(err)
}
return n
}
func TestPrepareMetrics(t *testing.T) {
node := nodeWithMemoryEngine(t)
cfg := config.DefaultConfig()
cfgContainer, err := config.NewContainer(cfg)
require.NoError(t, err)
sender := NewSender(node, cfgContainer, Features{})
err = sender.updateMaxValues()
require.NoError(t, err)
metrics, err := sender.prepareMetrics()
require.NoError(t, err)
require.True(t, len(metrics) > 0)
}