mirror of
https://github.com/henrygd/beszel.git
synced 2026-04-23 21:21:49 +02:00
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
//go:build testing
|
|
|
|
package records_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/henrygd/beszel/internal/records"
|
|
"github.com/henrygd/beszel/internal/tests"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestAverageProbeStats(t *testing.T) {
|
|
hub, err := tests.NewTestHub(t.TempDir())
|
|
require.NoError(t, err)
|
|
defer hub.Cleanup()
|
|
|
|
rm := records.NewRecordManager(hub)
|
|
user, err := tests.CreateUser(hub, "probe-avg@example.com", "testtesttest")
|
|
require.NoError(t, err)
|
|
system, err := tests.CreateRecord(hub, "systems", map[string]any{
|
|
"name": "probe-avg-system",
|
|
"host": "localhost",
|
|
"port": "45876",
|
|
"status": "up",
|
|
"users": []string{user.Id},
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
recordA, err := tests.CreateRecord(hub, "network_probe_stats", map[string]any{
|
|
"system": system.Id,
|
|
"type": "1m",
|
|
"stats": `{"icmp:1.1.1.1":[10,80,8,14,1]}`,
|
|
})
|
|
require.NoError(t, err)
|
|
recordB, err := tests.CreateRecord(hub, "network_probe_stats", map[string]any{
|
|
"system": system.Id,
|
|
"type": "1m",
|
|
"stats": `{"icmp:1.1.1.1":[40,100,9,50,5]}`,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
result := rm.AverageProbeStats(hub.DB(), records.RecordIds{
|
|
{Id: recordA.Id},
|
|
{Id: recordB.Id},
|
|
})
|
|
|
|
stats, ok := result["icmp:1.1.1.1"]
|
|
require.True(t, ok)
|
|
require.Len(t, stats, 5)
|
|
assert.Equal(t, 25.0, stats[0])
|
|
assert.Equal(t, 90.0, stats[1])
|
|
assert.Equal(t, 8.0, stats[2])
|
|
assert.Equal(t, 50.0, stats[3])
|
|
assert.Equal(t, 3.0, stats[4])
|
|
}
|