Curate current and hourly prompt exports
This commit is contained in:
@@ -162,6 +162,11 @@ func TestGenerateReportWritesReportAndPreflight(t *testing.T) {
|
||||
if !strings.Contains(string(snapshotData), module.SnapshotSchemaVersion) || !strings.Contains(string(snapshotData), `"metadata"`) || !strings.Contains(string(snapshotData), `"derived_daily_summary"`) {
|
||||
t.Fatalf("module snapshot missing expected stanzas:\n%s", string(snapshotData))
|
||||
}
|
||||
for _, want := range []string{`"condition_text_lower"`, `"hour_label"`, `"text_description_lower"`, `"mention_precipitation"`} {
|
||||
if !strings.Contains(string(snapshotData), want) {
|
||||
t.Fatalf("module snapshot missing rich helper field %q:\n%s", want, string(snapshotData))
|
||||
}
|
||||
}
|
||||
data, err := os.ReadFile(result.DataPackagePath)
|
||||
if err != nil {
|
||||
t.Fatalf("read data package: %v", err)
|
||||
@@ -222,6 +227,11 @@ func TestGenerateReportWritesReportAndPreflight(t *testing.T) {
|
||||
if !ok || current["condition_text"] != "Clear" {
|
||||
t.Fatalf("data package current conditions = %#v, want current conditions", savedDataPackage.Briefing.Values["current_conditions"])
|
||||
}
|
||||
for _, omitted := range []string{"condition_text_lower", "wind_direction_text"} {
|
||||
if _, ok := current[omitted]; ok {
|
||||
t.Fatalf("data package current conditions contains helper field %q: %#v", omitted, current)
|
||||
}
|
||||
}
|
||||
narrative, ok := savedDataPackage.Briefing.Values["narrative_forecast"].(map[string]any)
|
||||
if !ok || narrative["product"] != "narrative" || !strings.Contains(string(data), "Morning storms, then partly sunny.") {
|
||||
t.Fatalf("data package narrative forecast = %#v, want narrative forecast", savedDataPackage.Briefing.Values["narrative_forecast"])
|
||||
@@ -230,6 +240,19 @@ func TestGenerateReportWritesReportAndPreflight(t *testing.T) {
|
||||
if !ok || hourly["product"] != "hourly" || !strings.Contains(string(data), "Showers and thunderstorms") {
|
||||
t.Fatalf("data package hourly forecast = %#v, want hourly forecast", savedDataPackage.Briefing.Values["hourly_forecast"])
|
||||
}
|
||||
periods, ok := hourly["periods"].([]any)
|
||||
if !ok || len(periods) == 0 {
|
||||
t.Fatalf("data package hourly periods = %#v, want prompt period rows", hourly["periods"])
|
||||
}
|
||||
firstPeriod, ok := periods[0].(map[string]any)
|
||||
if !ok {
|
||||
t.Fatalf("data package hourly first period = %#v, want mapping", periods[0])
|
||||
}
|
||||
for _, omitted := range []string{"hour_label", "text_description_lower", "mention_precipitation"} {
|
||||
if _, ok := firstPeriod[omitted]; ok {
|
||||
t.Fatalf("data package hourly period contains helper field %q: %#v", omitted, firstPeriod)
|
||||
}
|
||||
}
|
||||
story, ok := savedDataPackage.Briefing.Values["weather_story"].(map[string]any)
|
||||
if !ok || story["title"] != "Several Chances for Rain Through Monday" {
|
||||
t.Fatalf("data package weather story = %#v, want weather story title", savedDataPackage.Briefing.Values["weather_story"])
|
||||
|
||||
Reference in New Issue
Block a user