package state import ( "testing" "time" "gitea.maximumdirect.net/eric/weatherreporter/internal/briefing" "gitea.maximumdirect.net/eric/weatherreporter/internal/report" ) func TestBuildPromptMetadataIncludesOnlyExistingArtifacts(t *testing.T) { resolved, err := report.DefaultRegistry().Resolve(report.Daily, report.ResolveRequest{ Now: time.Date(2026, 5, 29, 12, 0, 0, 0, time.UTC), Date: time.Date(2026, 5, 29, 0, 0, 0, 0, time.UTC), Location: time.UTC, }) if err != nil { t.Fatalf("Resolve() error = %v", err) } metadata := BuildPromptMetadataFromBriefingMetadata(resolved, briefing.Metadata{}, ArtifactPaths{ ModuleSnapshot: "/saved/modules.json", Metadata: "/destination/metadata.json", DataPackage: "/saved/data.yaml", Preparation: "/future/preparation.json", Execution: "/future/execution.json", Notification: "/future/notification.json", RenderedReport: "/future/report.md", GeneratedTextRaw: "/future/raw.json", GeneratedText: "/future/generated.json", RenderContext: "/future/context.json", }) if metadata.ModuleSnapshotPath != "/saved/modules.json" || metadata.DataPackagePath != "/saved/data.yaml" || metadata.MetadataPath != "/destination/metadata.json" { t.Fatalf("existing paths = %#v, want module, data package, and metadata destination", metadata) } if metadata.PreparationPath != "" || metadata.ExecutionPath != "" || metadata.NotificationPath != "" || metadata.RenderedReportPath != "" || metadata.GeneratedTextRawPath != "" || metadata.GeneratedTextPath != "" || metadata.RenderContextPath != "" { t.Fatalf("metadata includes paths for unreached artifacts: %#v", metadata) } }