package nws import "testing" func TestBuildObservationTextDescriptionAndPressurePrecedence(t *testing.T) { barometric := 100200.0 seaLevel := 101400.0 parsed := nwsObservationResponse{} parsed.Properties.Timestamp = "2026-03-16T19:00:00Z" parsed.Properties.TextDescription = " Overcast " parsed.Properties.BarometricPressure.Value = &barometric parsed.Properties.SeaLevelPressure.Value = &seaLevel obs, _, err := buildObservation(parsed) if err != nil { t.Fatalf("buildObservation() error = %v", err) } if got, want := obs.TextDescription, "Overcast"; got != want { t.Fatalf("TextDescription = %q, want %q", got, want) } if obs.BarometricPressurePa == nil { t.Fatalf("BarometricPressurePa = nil, want non-nil") } if got, want := *obs.BarometricPressurePa, seaLevel; got != want { t.Fatalf("BarometricPressurePa = %v, want %v", got, want) } } func TestBuildObservationPressureFallbackToBarometric(t *testing.T) { barometric := 99900.0 parsed := nwsObservationResponse{} parsed.Properties.Timestamp = "2026-03-16T19:00:00Z" parsed.Properties.TextDescription = "Cloudy" parsed.Properties.BarometricPressure.Value = &barometric obs, _, err := buildObservation(parsed) if err != nil { t.Fatalf("buildObservation() error = %v", err) } if obs.BarometricPressurePa == nil { t.Fatalf("BarometricPressurePa = nil, want non-nil") } if got, want := *obs.BarometricPressurePa, barometric; got != want { t.Fatalf("BarometricPressurePa = %v, want %v", got, want) } }