feat: 初始化 controller 状态机
Lint / Run on Ubuntu (pull_request) Successful in 4m59s
E2E Tests / Run on Ubuntu (pull_request) Failing after 54s
Tests / Run on Ubuntu (pull_request) Successful in 4m18s

This commit is contained in:
2026-09-10 08:44:39 +00:00
parent 60b63100b2
commit ed564d411f
6 changed files with 148 additions and 8 deletions
@@ -85,8 +85,21 @@ var _ = Describe("PostgreSQLInstance Controller", func() {
NamespacedName: typeNamespacedName,
})
Expect(err).NotTo(HaveOccurred())
// TODO(user): Add more specific assertions depending on your controller's reconciliation logic.
// Example: If you expect a certain status condition after reconciliation, verify it here.
actual := &databasev1alpha1.PostgreSQLInstance{}
Expect(k8sClient.Get(ctx, typeNamespacedName, actual)).To(Succeed())
Expect(actual.Status.Phase).To(Equal(databasev1alpha1.PostgreSQLInstancePhaseValidating))
Expect(actual.Status.Conditions).To(ConsistOf(And(
HaveField("Type", databasev1alpha1.ConditionTypeReady),
HaveField("Status", metav1.ConditionUnknown),
HaveField("Reason", databasev1alpha1.ReasonReconciling),
HaveField("ObservedGeneration", actual.Generation),
)))
resourceVersion := actual.ResourceVersion
_, err = controllerReconciler.Reconcile(ctx, reconcile.Request{NamespacedName: typeNamespacedName})
Expect(err).NotTo(HaveOccurred())
Expect(k8sClient.Get(ctx, typeNamespacedName, actual)).To(Succeed())
Expect(actual.ResourceVersion).To(Equal(resourceVersion), "an unchanged status must not be patched")
})
})
})