feat(t208): close candidate decision feedback loop

This commit is contained in:
QiuSW
2026-07-28 11:57:25 +08:00
parent 2a5ded42b5
commit e7f4c3e114
35 changed files with 2854 additions and 203 deletions
@@ -34,19 +34,27 @@ func TestClaimsMigrationPreservesHistoryAcrossUpDownUp(t *testing.T) {
if applied, err := runner.Up(ctx); err != nil {
t.Fatalf("initial Up() error = %v", err)
} else if applied != 5 {
t.Fatalf("initial Up() applied = %d, want 5", applied)
} else if applied != 6 {
t.Fatalf("initial Up() applied = %d, want 6", applied)
}
if err := runner.Down(ctx); err != nil {
t.Fatalf("initial Down(v4) error = %v", err)
t.Fatalf("initial Down(v6) error = %v", err)
}
if err := runner.Down(ctx); err != nil {
t.Fatalf("initial Down(v5) error = %v", err)
}
seedClaimsHistoricalFixture(t, db)
if applied, err := runner.Up(ctx); err != nil {
t.Fatalf("Up(v4) over historical data error = %v", err)
} else if applied != 1 {
t.Fatalf("Up(v4) applied = %d, want 1", applied)
t.Fatalf("Up(v5-v6) over historical data error = %v", err)
} else if applied != 2 {
t.Fatalf("Up(v5-v6) applied = %d, want 2", applied)
}
assertClaimsHistory(t, db, true)
if err := runner.Down(ctx); err != nil {
t.Fatalf("Down(v6) with compatible history error = %v", err)
}
assertClaimsHistory(t, db, true)
@@ -61,9 +69,9 @@ func TestClaimsMigrationPreservesHistoryAcrossUpDownUp(t *testing.T) {
assertClaimsHistory(t, db, false)
if applied, err := runner.Up(ctx); err != nil {
t.Fatalf("final Up(v4) error = %v", err)
} else if applied != 2 {
t.Fatalf("final Up(v4-v5) applied = %d, want 2", applied)
t.Fatalf("final Up(v4-v6) error = %v", err)
} else if applied != 3 {
t.Fatalf("final Up(v4-v6) applied = %d, want 3", applied)
}
assertClaimsHistory(t, db, true)
}
@@ -299,6 +307,9 @@ func TestClaimsMigrationDownFailsClosedForNewAuditData(t *testing.T) {
t.Fatalf("insert v4 audit event: %v", err)
}
if err := runner.Down(ctx); err != nil {
t.Fatalf("Down(v6) error = %v", err)
}
if err := runner.Down(ctx); err != nil {
t.Fatalf("Down(v5) error = %v", err)
}