41 lines
1.5 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|