mirror of
https://github.com//cppla/ServerStatus
synced 2026-08-06 09:13:57 +08:00
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestTrafficBaselinesResetIndependently(t *testing.T) {
|
|
node := &NodeState{LastNetworkIn: 100, LastNetworkOut: 0}
|
|
updateTrafficBaselines(node, 150, 500, false)
|
|
if node.LastNetworkIn != 100 || node.LastNetworkOut != 500 {
|
|
t.Fatalf("missing outbound baseline was not initialized independently: %#v", node)
|
|
}
|
|
|
|
node.LastNetworkOut = 700
|
|
updateTrafficBaselines(node, 200, 50, false)
|
|
if node.LastNetworkIn != 100 || node.LastNetworkOut != 50 {
|
|
t.Fatalf("outbound counter reset changed the wrong baseline: %#v", node)
|
|
}
|
|
|
|
updateTrafficBaselines(node, 900, 800, true)
|
|
if node.LastNetworkIn != 900 || node.LastNetworkOut != 800 {
|
|
t.Fatalf("monthly reset did not reset both baselines: %#v", node)
|
|
}
|
|
}
|
|
|
|
func TestDisconnectPreservesOfflineDisplayMetadata(t *testing.T) {
|
|
app := newTestApp(t, minimalTestConfig())
|
|
client, server := net.Pipe()
|
|
defer client.Close()
|
|
defer server.Close()
|
|
|
|
app.nodeMu.Lock()
|
|
node := app.nodes["s01"]
|
|
node.Connected = true
|
|
node.Connection = server
|
|
node.ConnectionID = 42
|
|
node.HasUpdate = true
|
|
node.Stats = AgentStats{OS: "linux", CPUModel: "Test CPU"}
|
|
app.nodeMu.Unlock()
|
|
|
|
app.disconnectAgent("s01", server, 42)
|
|
serverStats := app.SnapshotStats()["servers"].([]any)[0].(map[string]any)
|
|
if serverStats["online4"] != false || serverStats["online6"] != false {
|
|
t.Fatalf("disconnected node remained online: %#v", serverStats)
|
|
}
|
|
if serverStats["os"] != "linux" || serverStats["cpu_model"] != "Test CPU" {
|
|
t.Fatalf("offline display metadata was discarded: %#v", serverStats)
|
|
}
|
|
}
|