package pgsql import ( "math" "testing" "fwh-toolbox-server/dto" ) func TestExpandPowerFlowPreservesMissingParallelValuesAsNull(t *testing.T) { value := &dto.SitePowerFlow{ DeviceTimeArray: []string{"2026-09-19 00:00:00", "2026-09-19 00:05:00"}, PowerFhpArray: []float32{1.5}, RunStatusArray: []uint{2}, } rows, err := expandPowerFlow(value, "UTC") if err != nil { t.Fatalf("expandPowerFlow returned error: %v", err) } if len(rows) != 2 { t.Fatalf("got %d rows, want 2", len(rows)) } second := rows[1].Payload.(powerFlowPoint) if second.PowerFhp != nil || second.RunStatus != nil { t.Fatalf("missing parallel values must remain null: %#v", second) } } func TestExpandPowerFlowRejectsRunStatusOutsidePostgresInteger(t *testing.T) { value := &dto.SitePowerFlow{ DeviceTimeArray: []string{"2026-09-19 00:00:00"}, RunStatusArray: []uint{uint(math.MaxInt32) + 1}, } if _, err := expandPowerFlow(value, "UTC"); err == nil { t.Fatal("expandPowerFlow accepted a runStatus outside PostgreSQL integer range") } }