@@ -415,13 +415,26 @@ func TestPatchResources(t *testing.T) {
415415func TestCreateJobFromCronjob (t * testing.T ) {
416416 fixtures := newTestFixtures ()
417417
418- cronJob , err := createTestCronJobWithAnnotations (clients , fixtures .namespace , "1" )
418+ runtimeObj , err := createTestCronJobWithAnnotations (clients , fixtures .namespace , "1" )
419419 assert .NoError (t , err )
420420
421- err = callbacks .CreateJobFromCronjob (clients , fixtures .namespace , cronJob .(* batchv1.CronJob ))
421+ cronJob := runtimeObj .(* batchv1.CronJob )
422+ err = callbacks .CreateJobFromCronjob (clients , fixtures .namespace , cronJob )
422423 assert .NoError (t , err )
423424
424- err = deleteTestCronJob (clients , fixtures .namespace , "test-cronjob" )
425+ jobList , err := clients .KubernetesClient .BatchV1 ().Jobs (fixtures .namespace ).List (context .TODO (), metav1.ListOptions {})
426+ assert .NoError (t , err )
427+
428+ ownerFound := false
429+ for _ , job := range jobList .Items {
430+ if isControllerOwner ("CronJob" , cronJob .Name , job .OwnerReferences ) {
431+ ownerFound = true
432+ break
433+ }
434+ }
435+ assert .Truef (t , ownerFound , "Missing CronJob owner reference" )
436+
437+ err = deleteTestCronJob (clients , fixtures .namespace , cronJob .Name )
425438 assert .NoError (t , err )
426439}
427440
@@ -749,3 +762,12 @@ func createTestJobWithAnnotations(clients kube.Clients, namespace, version strin
749762func deleteTestJob (clients kube.Clients , namespace , name string ) error {
750763 return clients .KubernetesClient .BatchV1 ().Jobs (namespace ).Delete (context .TODO (), name , metav1.DeleteOptions {})
751764}
765+
766+ func isControllerOwner (kind , name string , ownerRefs []metav1.OwnerReference ) bool {
767+ for _ , ownerRef := range ownerRefs {
768+ if * ownerRef .Controller && ownerRef .Kind == kind && ownerRef .Name == name {
769+ return true
770+ }
771+ }
772+ return false
773+ }
0 commit comments