dataDownloadRepo_test.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package pgsql
  2. import (
  3. "math"
  4. "testing"
  5. "fwh-toolbox-server/dto"
  6. )
  7. func TestExpandPowerFlowPreservesMissingParallelValuesAsNull(t *testing.T) {
  8. value := &dto.SitePowerFlow{
  9. DeviceTimeArray: []string{"2026-09-19 00:00:00", "2026-09-19 00:05:00"},
  10. PowerFhpArray: []float32{1.5},
  11. RunStatusArray: []uint{2},
  12. }
  13. rows, err := expandPowerFlow(value, "UTC")
  14. if err != nil {
  15. t.Fatalf("expandPowerFlow returned error: %v", err)
  16. }
  17. if len(rows) != 2 {
  18. t.Fatalf("got %d rows, want 2", len(rows))
  19. }
  20. second := rows[1].Payload.(powerFlowPoint)
  21. if second.PowerFhp != nil || second.RunStatus != nil {
  22. t.Fatalf("missing parallel values must remain null: %#v", second)
  23. }
  24. }
  25. func TestExpandPowerFlowRejectsRunStatusOutsidePostgresInteger(t *testing.T) {
  26. value := &dto.SitePowerFlow{
  27. DeviceTimeArray: []string{"2026-09-19 00:00:00"},
  28. RunStatusArray: []uint{uint(math.MaxInt32) + 1},
  29. }
  30. if _, err := expandPowerFlow(value, "UTC"); err == nil {
  31. t.Fatal("expandPowerFlow accepted a runStatus outside PostgreSQL integer range")
  32. }
  33. }