snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
82
internal/usage/usage_test.go
Normal file
82
internal/usage/usage_test.go
Normal file
@@ -0,0 +1,82 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user