Clear superseded session stage result details
This commit is contained in:
@@ -742,6 +742,41 @@ func TestExecuteStagesForceRerunsSucceeded(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecuteStagesSuccessfulReplacementDoesNotInheritResultDetails(t *testing.T) {
|
||||
cfg := testConfig(t)
|
||||
manifestPath := manifestPathFor(cfg)
|
||||
store := &manifest.LocalStore{}
|
||||
|
||||
existing := manifest.New(cfg.Session.SessionID, time.Date(2026, 5, 3, 1, 0, 0, 0, time.UTC))
|
||||
existing.MarkStageSucceeded("transcribe", time.Date(2026, 5, 3, 1, 1, 0, 0, time.UTC), []manifest.ArtifactRecord{{
|
||||
Kind: "transcript_raw", LocalPath: "transcripts/old.json",
|
||||
}})
|
||||
existingStage := existing.Stages["transcribe"]
|
||||
existingStage.Logs = []string{"logs/old.log"}
|
||||
existingStage.GeneratedConfigs = []string{"generated/old.yaml"}
|
||||
existingStage.Metadata = map[string]any{"old_result": true}
|
||||
if err := store.Save(context.Background(), manifestPath, existing); err != nil {
|
||||
t.Fatalf("Save manifest error = %v", err)
|
||||
}
|
||||
|
||||
runs := 0
|
||||
replacement := resultStage{name: "transcribe", result: &stage.StageResult{}, runs: &runs}
|
||||
if _, err := executeStages(context.Background(), cfg, []stage.Stage{replacement}, RunOptions{Force: true}); err != nil {
|
||||
t.Fatalf("executeStages() error = %v", err)
|
||||
}
|
||||
loaded, err := store.Load(context.Background(), manifestPath)
|
||||
if err != nil {
|
||||
t.Fatalf("Load manifest error = %v", err)
|
||||
}
|
||||
record := loaded.Stages["transcribe"]
|
||||
if runs != 1 || record == nil || record.Status != manifest.StatusSucceeded {
|
||||
t.Fatalf("runs = %d, record = %#v, want one successful replacement", runs, record)
|
||||
}
|
||||
if len(record.Outputs) != 0 || len(record.Logs) != 0 || len(record.GeneratedConfigs) != 0 || len(record.Metadata) != 0 {
|
||||
t.Fatalf("replacement inherited result details: %#v", record)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecuteStagesForceSuccessInvalidatesDownstreamSucceededStages(t *testing.T) {
|
||||
cfg := testConfig(t)
|
||||
manifestPath := manifestPathFor(cfg)
|
||||
|
||||
Reference in New Issue
Block a user