Provisioning: add unit and integration tests for finalizer validation (#111012)

* Add unit testS

* add integration tests
This commit is contained in:
Daniele Stefano Ferru
2025-09-12 13:57:31 +02:00
committed by GitHub
parent 076c52e1b2
commit 1f7afc6b6a
2 changed files with 78 additions and 0 deletions
@@ -26,6 +26,9 @@ func TestValidateRepository(t *testing.T) {
repository: func() *MockRepository {
m := NewMockRepository(t)
m.On("Config").Return(&provisioning.Repository{
ObjectMeta: metav1.ObjectMeta{
Finalizers: []string{CleanFinalizer, RemoveOrphanResourcesFinalizer},
},
Spec: provisioning.RepositorySpec{
Title: "Test Repo",
},
@@ -232,6 +235,28 @@ func TestValidateRepository(t *testing.T) {
require.Contains(t, errors.ToAggregate().Error(), "spec.workflow: Invalid value: \"invalid\": invalid workflow")
},
},
{
name: "mutual exclusive finalizers are set together",
repository: func() *MockRepository {
m := NewMockRepository(t)
m.On("Config").Return(&provisioning.Repository{
ObjectMeta: metav1.ObjectMeta{
Finalizers: []string{RemoveOrphanResourcesFinalizer, ReleaseOrphanResourcesFinalizer},
},
Spec: provisioning.RepositorySpec{
Title: "Test Repo",
Type: provisioning.GitHubRepositoryType,
Workflows: []provisioning.Workflow{provisioning.WriteWorkflow},
},
})
m.On("Validate").Return(field.ErrorList{})
return m
}(),
expectedErrs: 1,
validateError: func(t *testing.T, errors field.ErrorList) {
require.Contains(t, errors.ToAggregate().Error(), "cannot have both remove and release orphan resources finalizers")
},
},
}
for _, tt := range tests {