Files
ayatori/api/database/v1alpha1/resource_status_test.go
panxiao81 e2016d3727
Verify / test (pull_request) Successful in 9m19s
Verify / lint (pull_request) Successful in 10m19s
Verify / database-integration (pull_request) Successful in 12m12s
feat: 接通 PostgreSQL 角色与数据库创建闭环
2026-09-29 16:04:52 +00:00

41 lines
1.5 KiB
Go

package v1alpha1_test
import (
"testing"
databasev1alpha1 "git.ddupan.top/panxiao81/ayatori/api/database/v1alpha1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func testResourceStatus(t *testing.T, api client.Client) {
object := validDatabase("resource-status")
if err := api.Create(t.Context(), object); err != nil {
t.Fatal(err)
}
invalid := object.DeepCopy()
invalid.Status.RoleOID = 11
if err := api.Status().Update(t.Context(), invalid); !apierrors.IsInvalid(err) {
t.Fatal("无凭据不能确认角色", err)
}
object.Status.InstanceUID = "instance-uid"
object.Status.CredentialRef = &databasev1alpha1.CredentialReference{Mount: "application-secrets", Path: "applications/test"}
object.Status.CredentialVersion = 1
object.Status.RoleOID, object.Status.DatabaseOID = 11, 22
if err := api.Status().Update(t.Context(), object); err != nil {
t.Fatal(err)
}
for _, change := range []func(*databasev1alpha1.PostgreSQLDatabase){
func(d *databasev1alpha1.PostgreSQLDatabase) { d.Status.RoleOID = 0 },
func(d *databasev1alpha1.PostgreSQLDatabase) { d.Status.RoleOID = 12 },
func(d *databasev1alpha1.PostgreSQLDatabase) { d.Status.DatabaseOID = 0 },
func(d *databasev1alpha1.PostgreSQLDatabase) { d.Status.DatabaseOID = 23 },
} {
invalid = object.DeepCopy()
change(invalid)
if err := api.Status().Update(t.Context(), invalid); !apierrors.IsInvalid(err) {
t.Fatal("已确认 OID 不得覆盖或移除", err)
}
}
}