package restoretest import ( "path/filepath" "testing" "time" ) // TestHistory_ShowsMultiplePastRunsInOrder ist Pruefung 3: Protokoll- // historie zeigt mehrere zurueckliegende Testlaeufe nachvollziehbar an. func TestHistory_ShowsMultiplePastRunsInOrder(t *testing.T) { logPath := filepath.Join(t.TempDir(), "restoretest.log") results := []Result{ {Timestamp: time.Now().UTC(), Kind: KindDatabase, Source: "gen-1", Success: true, Detail: "ok"}, {Timestamp: time.Now().UTC().Add(time.Hour), Kind: KindObjects, Source: "snap-1", Success: false, Detail: "kaputt"}, {Timestamp: time.Now().UTC().Add(2 * time.Hour), Kind: KindDatabase, Source: "gen-2", Success: true, Detail: "ok"}, } for _, r := range results { if err := AppendHistory(logPath, r); err != nil { t.Fatalf("appendHistory: %v", err) } } got, err := ReadHistory(logPath) if err != nil { t.Fatalf("readHistory: %v", err) } if len(got) != len(results) { t.Fatalf("erwartet %d eintraege, habe %d", len(results), len(got)) } for i, want := range results { if got[i].Source != want.Source || got[i].Success != want.Success || got[i].Kind != want.Kind { t.Fatalf("eintrag %d = %+v, want %+v", i, got[i], want) } } } // TestReadHistory_MissingFileReturnsEmpty - noch kein Testlauf ist kein // Fehlerzustand. func TestReadHistory_MissingFileReturnsEmpty(t *testing.T) { got, err := ReadHistory(filepath.Join(t.TempDir(), "nicht-vorhanden.log")) if err != nil { t.Fatalf("erwartet keinen fehler, habe: %v", err) } if len(got) != 0 { t.Fatalf("erwartet leere historie, habe %d eintraege", len(got)) } }