Табличные тесты PolicyExecutor, ConfigProvider reload, memory CRUD политик и 503 для /v1/maintenance/* на memory-бэкенде без PostgreSQL. Co-authored-by: Cursor <[email protected]>
44 lines
998 B
Go
44 lines
998 B
Go
package maintenance
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"evobgp/internal/store"
|
|
)
|
|
|
|
func TestConfigProviderReloadAndSnapshot(t *testing.T) {
|
|
mem := store.NewMemory()
|
|
ret := 3600
|
|
if _, err := mem.CreateMaintenancePolicy(&store.MaintenancePolicy{
|
|
Name: "p1",
|
|
TableName: "job_audit",
|
|
Schedule: "0 3 * * *",
|
|
RetentionPeriodSec: &ret,
|
|
Enabled: true,
|
|
}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
cp := NewConfigProvider(mem)
|
|
if err := cp.Reload(context.Background()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
snap := cp.Snapshot()
|
|
if len(snap) != 1 || snap[0].Name != "p1" {
|
|
t.Fatalf("snapshot: %+v", snap)
|
|
}
|
|
|
|
newName := "p1-updated"
|
|
if _, err := mem.UpdateMaintenancePolicy(snap[0].ID, &store.MaintenancePolicyPatch{Name: &newName}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := cp.Reload(context.Background()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
snap2 := cp.Snapshot()
|
|
if len(snap2) != 1 || snap2[0].Name != newName {
|
|
t.Fatalf("after reload: %+v", snap2)
|
|
}
|
|
}
|