mirror of
https://github.com/henrygd/beszel.git
synced 2026-03-22 13:36:16 +01:00
also removes refs to legacy load avg fields (l1, l5, l15) that were around for a very short period
160 lines
4.7 KiB
Go
160 lines
4.7 KiB
Go
//go:build testing
|
|
|
|
package systems
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/henrygd/beszel/internal/entities/system"
|
|
)
|
|
|
|
func TestCombinedData_MigrateDeprecatedFields(t *testing.T) {
|
|
t.Run("Migrate NetworkSent and NetworkRecv to Bandwidth", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Stats: system.Stats{
|
|
NetworkSent: 1.5, // 1.5 MB
|
|
NetworkRecv: 2.5, // 2.5 MB
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, true)
|
|
|
|
expectedSent := uint64(1.5 * 1024 * 1024)
|
|
expectedRecv := uint64(2.5 * 1024 * 1024)
|
|
|
|
if cd.Stats.Bandwidth[0] != expectedSent {
|
|
t.Errorf("expected Bandwidth[0] %d, got %d", expectedSent, cd.Stats.Bandwidth[0])
|
|
}
|
|
if cd.Stats.Bandwidth[1] != expectedRecv {
|
|
t.Errorf("expected Bandwidth[1] %d, got %d", expectedRecv, cd.Stats.Bandwidth[1])
|
|
}
|
|
if cd.Stats.NetworkSent != 0 || cd.Stats.NetworkRecv != 0 {
|
|
t.Errorf("expected NetworkSent and NetworkRecv to be reset, got %f, %f", cd.Stats.NetworkSent, cd.Stats.NetworkRecv)
|
|
}
|
|
})
|
|
|
|
t.Run("Migrate Info.Bandwidth to Info.BandwidthBytes", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Info: system.Info{
|
|
Bandwidth: 10.0, // 10 MB
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, true)
|
|
|
|
expected := uint64(10 * 1024 * 1024)
|
|
if cd.Info.BandwidthBytes != expected {
|
|
t.Errorf("expected BandwidthBytes %d, got %d", expected, cd.Info.BandwidthBytes)
|
|
}
|
|
if cd.Info.Bandwidth != 0 {
|
|
t.Errorf("expected Info.Bandwidth to be reset, got %f", cd.Info.Bandwidth)
|
|
}
|
|
})
|
|
|
|
t.Run("Migrate DiskReadPs and DiskWritePs to DiskIO", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Stats: system.Stats{
|
|
DiskReadPs: 3.0, // 3 MB
|
|
DiskWritePs: 4.0, // 4 MB
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, true)
|
|
|
|
expectedRead := uint64(3 * 1024 * 1024)
|
|
expectedWrite := uint64(4 * 1024 * 1024)
|
|
|
|
if cd.Stats.DiskIO[0] != expectedRead {
|
|
t.Errorf("expected DiskIO[0] %d, got %d", expectedRead, cd.Stats.DiskIO[0])
|
|
}
|
|
if cd.Stats.DiskIO[1] != expectedWrite {
|
|
t.Errorf("expected DiskIO[1] %d, got %d", expectedWrite, cd.Stats.DiskIO[1])
|
|
}
|
|
if cd.Stats.DiskReadPs != 0 || cd.Stats.DiskWritePs != 0 {
|
|
t.Errorf("expected DiskReadPs and DiskWritePs to be reset, got %f, %f", cd.Stats.DiskReadPs, cd.Stats.DiskWritePs)
|
|
}
|
|
})
|
|
|
|
t.Run("Migrate Info fields to Details struct", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Stats: system.Stats{
|
|
Mem: 16.0, // 16 GB
|
|
},
|
|
Info: system.Info{
|
|
Hostname: "test-host",
|
|
KernelVersion: "6.8.0",
|
|
Cores: 8,
|
|
Threads: 16,
|
|
CpuModel: "Intel i7",
|
|
Podman: true,
|
|
Os: system.Linux,
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, true)
|
|
|
|
if cd.Details == nil {
|
|
t.Fatal("expected Details struct to be created")
|
|
}
|
|
if cd.Details.Hostname != "test-host" {
|
|
t.Errorf("expected Hostname 'test-host', got '%s'", cd.Details.Hostname)
|
|
}
|
|
if cd.Details.Kernel != "6.8.0" {
|
|
t.Errorf("expected Kernel '6.8.0', got '%s'", cd.Details.Kernel)
|
|
}
|
|
if cd.Details.Cores != 8 {
|
|
t.Errorf("expected Cores 8, got %d", cd.Details.Cores)
|
|
}
|
|
if cd.Details.Threads != 16 {
|
|
t.Errorf("expected Threads 16, got %d", cd.Details.Threads)
|
|
}
|
|
if cd.Details.CpuModel != "Intel i7" {
|
|
t.Errorf("expected CpuModel 'Intel i7', got '%s'", cd.Details.CpuModel)
|
|
}
|
|
if cd.Details.Podman != true {
|
|
t.Errorf("expected Podman true, got %v", cd.Details.Podman)
|
|
}
|
|
if cd.Details.Os != system.Linux {
|
|
t.Errorf("expected Os Linux, got %d", cd.Details.Os)
|
|
}
|
|
expectedMem := uint64(16 * 1024 * 1024 * 1024)
|
|
if cd.Details.MemoryTotal != expectedMem {
|
|
t.Errorf("expected MemoryTotal %d, got %d", expectedMem, cd.Details.MemoryTotal)
|
|
}
|
|
|
|
if cd.Info.Hostname != "" || cd.Info.KernelVersion != "" || cd.Info.Cores != 0 || cd.Info.CpuModel != "" || cd.Info.Podman != false || cd.Info.Os != 0 {
|
|
t.Errorf("expected Info fields to be reset, got %+v", cd.Info)
|
|
}
|
|
})
|
|
|
|
t.Run("Do not migrate if Details already exists", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Details: &system.Details{Hostname: "existing-host"},
|
|
Info: system.Info{
|
|
Hostname: "deprecated-host",
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, true)
|
|
|
|
if cd.Details.Hostname != "existing-host" {
|
|
t.Errorf("expected Hostname 'existing-host', got '%s'", cd.Details.Hostname)
|
|
}
|
|
if cd.Info.Hostname != "deprecated-host" {
|
|
t.Errorf("expected Info.Hostname to remain 'deprecated-host', got '%s'", cd.Info.Hostname)
|
|
}
|
|
})
|
|
|
|
t.Run("Do not create details if migrateDetails is false", func(t *testing.T) {
|
|
cd := &system.CombinedData{
|
|
Info: system.Info{
|
|
Hostname: "deprecated-host",
|
|
},
|
|
}
|
|
migrateDeprecatedFields(cd, false)
|
|
|
|
if cd.Details != nil {
|
|
t.Fatal("expected Details struct to not be created")
|
|
}
|
|
|
|
if cd.Info.Hostname != "" {
|
|
t.Errorf("expected Info.Hostname to be reset, got '%s'", cd.Info.Hostname)
|
|
}
|
|
})
|
|
}
|