47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package schema
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestHardwareSnapshotMarshalsNewContractFields(t *testing.T) {
|
|
week := "2024-W07"
|
|
eventTime := "2026-03-15T14:03:11Z"
|
|
message := "Correctable ECC error threshold exceeded"
|
|
|
|
payload := HardwareIngestRequest{
|
|
CollectedAt: "2026-03-15T15:00:00Z",
|
|
Hardware: HardwareSnapshot{
|
|
Board: HardwareBoard{SerialNumber: "SRV-001"},
|
|
CPUs: []HardwareCPU{
|
|
{
|
|
HardwareComponentStatus: HardwareComponentStatus{
|
|
ManufacturedYearWeek: &week,
|
|
},
|
|
},
|
|
},
|
|
EventLogs: []HardwareEventLog{
|
|
{
|
|
Source: "bmc",
|
|
EventTime: &eventTime,
|
|
Message: message,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
data, err := json.Marshal(payload)
|
|
if err != nil {
|
|
t.Fatalf("marshal: %v", err)
|
|
}
|
|
text := string(data)
|
|
if !strings.Contains(text, `"manufactured_year_week":"2024-W07"`) {
|
|
t.Fatalf("missing manufactured_year_week: %s", text)
|
|
}
|
|
if !strings.Contains(text, `"event_logs":[{"source":"bmc","event_time":"2026-03-15T14:03:11Z","message":"Correctable ECC error threshold exceeded"}]`) {
|
|
t.Fatalf("missing event_logs payload: %s", text)
|
|
}
|
|
}
|