diff options
| author | historia <[not public]> | 2026-10-05 17:49:48 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-10-05 17:49:48 -0400 |
| commit | 7a15a5d70004b28bf2a710fa0f536af2446e5b17 (patch) | |
| tree | 920705853f79bb13a65fcb2f89cee38e6f2efab8 /internal/persistence/txn_test.go | |
| parent | ec703a39738fefb60817f5659f76f8e683f8d301 (diff) | |
| download | thehouseoficarus-7a15a5d70004b28bf2a710fa0f536af2446e5b17.tar.gz | |
fix: production multi-step recipes, drop-weight validation, journal versioning
Diffstat (limited to 'internal/persistence/txn_test.go')
| -rw-r--r-- | internal/persistence/txn_test.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/persistence/txn_test.go b/internal/persistence/txn_test.go index be19c7c..e1cd05d 100644 --- a/internal/persistence/txn_test.go +++ b/internal/persistence/txn_test.go @@ -280,3 +280,23 @@ func TestRecoverKeepsJournalWithUnknownOpKind(t *testing.T) { t.Fatalf("journal with unknown kind was removed: %v", err) } } + +// Regression: a journal written by a newer version must be refused, not +// silently misread or deleted. +func TestRecoverRefusesUnknownJournalVersion(t *testing.T) { + dir := t.TempDir() + journalDir := filepath.Join(dir, ".journal") + if err := os.MkdirAll(journalDir, 0700); err != nil { + t.Fatal(err) + } + path := filepath.Join(journalDir, "txn-future.json") + if err := os.WriteFile(path, []byte(`{"version":99,"ops":[]}`), 0600); err != nil { + t.Fatal(err) + } + if err := Recover(journalDir); err == nil { + t.Fatal("Recover accepted an unknown journal version") + } + if _, err := os.Stat(path); err != nil { + t.Fatalf("journal with an unknown version was removed: %v", err) + } +} |
