test(maintenance): add policy executor and handler tests
Табличные тесты PolicyExecutor, ConfigProvider reload, memory CRUD политик и 503 для /v1/maintenance/* на memory-бэкенде без PostgreSQL. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user