package openmeteo import "testing" func TestBuildObservationTextDescriptionAndPressurePrecedence(t *testing.T) { weatherCode := 2 pressureMSL := 1016.0 surfacePressure := 1009.0 parsed := omResponse{ Timezone: "UTC", UTCOffsetSeconds: 0, Current: omCurrent{ Time: "2026-03-16T19:00", WeatherCode: &weatherCode, PressureMSL: &pressureMSL, SurfacePressure: &surfacePressure, }, } obs, _, err := buildObservation(parsed) if err != nil { t.Fatalf("buildObservation() error = %v", err) } if got, want := obs.TextDescription, "Partly Cloudy"; 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, 101600.0; got != want { t.Fatalf("BarometricPressurePa = %v, want %v", got, want) } } func TestBuildObservationPressureFallbackToSurface(t *testing.T) { surfacePressure := 1008.0 parsed := omResponse{ Timezone: "UTC", UTCOffsetSeconds: 0, Current: omCurrent{ Time: "2026-03-16T19:00", SurfacePressure: &surfacePressure, }, } 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, 100800.0; got != want { t.Fatalf("BarometricPressurePa = %v, want %v", got, want) } }