66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
package parser
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.mchus.pro/mchus/logpile/internal/models"
|
|
)
|
|
|
|
func TestNormalizeManufacturedYearWeek(t *testing.T) {
|
|
tests := []struct {
|
|
in string
|
|
want string
|
|
}{
|
|
{"2024-W07", "2024-W07"},
|
|
{"2024-02-13", "2024-W07"},
|
|
{"02/13/2024", "2024-W07"},
|
|
{"Tue Feb 13 12:00:00 2024", "2024-W07"},
|
|
{"", ""},
|
|
{"not-a-date", ""},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
if got := NormalizeManufacturedYearWeek(tt.in); got != tt.want {
|
|
t.Fatalf("NormalizeManufacturedYearWeek(%q) = %q, want %q", tt.in, got, tt.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestApplyManufacturedYearWeekFromFRU_AttachesByExactSerial(t *testing.T) {
|
|
hw := &models.HardwareConfig{
|
|
PowerSupply: []models.PSU{
|
|
{
|
|
Slot: "PSU0",
|
|
SerialNumber: "PSU-SN-001",
|
|
},
|
|
},
|
|
Storage: []models.Storage{
|
|
{
|
|
Slot: "OB01",
|
|
SerialNumber: "DISK-SN-001",
|
|
},
|
|
},
|
|
}
|
|
fru := []models.FRUInfo{
|
|
{
|
|
Description: "PSU0_FRU (ID 30)",
|
|
SerialNumber: "PSU-SN-001",
|
|
MfgDate: "2024-02-13",
|
|
},
|
|
{
|
|
Description: "Builtin FRU Device (ID 0)",
|
|
SerialNumber: "BOARD-SN-001",
|
|
MfgDate: "2024-02-01",
|
|
},
|
|
}
|
|
|
|
ApplyManufacturedYearWeekFromFRU(fru, hw)
|
|
|
|
if got := hw.PowerSupply[0].Details["manufactured_year_week"]; got != "2024-W07" {
|
|
t.Fatalf("expected PSU year week 2024-W07, got %#v", hw.PowerSupply[0].Details)
|
|
}
|
|
if hw.Storage[0].Details != nil {
|
|
t.Fatalf("expected unmatched storage serial to stay untouched, got %#v", hw.Storage[0].Details)
|
|
}
|
|
}
|