diff --git a/internal/controller/drplacementcontrol_controller_test.go b/internal/controller/drplacementcontrol_controller_test.go
index 4eb728893..14e67b69a 100644
--- a/internal/controller/drplacementcontrol_controller_test.go
+++ b/internal/controller/drplacementcontrol_controller_test.go
@@ -691,8 +691,8 @@ func deleteUserPlacementRule(name, namespace string) {
 	Expect(k8sClient.Delete(context.TODO(), userPlacementRule)).Should(Succeed())
 }
 
-func deleteUserPlacement(name, namespace string) {
-	userPlacement := getLatestUserPlacement(name, namespace)
+func deleteUserPlacement() {
+	userPlacement := getLatestUserPlacement(UserPlacementName, DefaultDRPCNamespace)
 	Expect(k8sClient.Delete(context.TODO(), userPlacement)).Should(Succeed())
 }
 
@@ -701,7 +701,7 @@ func deleteDRPC() {
 	Expect(k8sClient.Delete(context.TODO(), drpc)).Should(Succeed())
 }
 
-func deleteNamespaceMWsFromAllClusters(namespace string) {
+func ensureNamespaceMWsDeletedFromAllClusters(namespace string) {
 	foundMW := &ocmworkv1.ManifestWork{}
 	mwName := fmt.Sprintf(rmnutil.ManifestWorkNameFormat, DRPCCommonName, namespace, rmnutil.MWTypeNS)
 	err := k8sClient.Get(context.TODO(),
@@ -709,14 +709,14 @@ func deleteNamespaceMWsFromAllClusters(namespace string) {
 		foundMW)
 
 	if err == nil {
-		Expect(k8sClient.Delete(context.TODO(), foundMW)).Should(Succeed())
+		Expect(foundMW).To(BeNil())
 	}
 
 	err = k8sClient.Get(context.TODO(),
 		types.NamespacedName{Name: mwName, Namespace: West1ManagedCluster},
 		foundMW)
 	if err == nil {
-		Expect(k8sClient.Delete(context.TODO(), foundMW)).Should(Succeed())
+		Expect(foundMW).To(BeNil())
 	}
 }
 
@@ -1235,7 +1235,7 @@ func getManifestWorkCount(homeClusterNamespace string) int {
 	return len(manifestWorkList.Items) - 1
 }
 
-func verifyNSManifestWorkBackupLabelNotExist(resourceName, namespaceString, managedCluster string) {
+func verifyNSManifestWork(resourceName, namespaceString, managedCluster string) {
 	mw := &ocmworkv1.ManifestWork{}
 	mwName := fmt.Sprintf(rmnutil.ManifestWorkNameFormat, resourceName, namespaceString, rmnutil.MWTypeNS)
 	err := k8sClient.Get(context.TODO(),
@@ -1245,6 +1245,7 @@ func verifyNSManifestWorkBackupLabelNotExist(resourceName, namespaceString, mana
 	Expect(err).NotTo(HaveOccurred())
 
 	Expect(mw).ToNot(BeNil())
+	Expect(mw.Spec.DeleteOption).ToNot(BeNil())
 	Expect(mw.Labels[rmnutil.OCMBackupLabelKey]).To(Equal(""))
 }
 
@@ -1709,7 +1710,7 @@ func verifyInitialDRPCDeployment(userPlacement client.Object, preferredCluster s
 	Expect(latestDRPC.GetAnnotations()[controllers.DRPCAppNamespace]).
 		To(Equal(getVRGNamespace(userPlacement.GetNamespace())))
 
-	verifyNSManifestWorkBackupLabelNotExist(latestDRPC.Name, getVRGNamespace(latestDRPC.Namespace),
+	verifyNSManifestWork(latestDRPC.Name, getVRGNamespace(latestDRPC.Namespace),
 		East1ManagedCluster)
 }
 
@@ -1978,9 +1979,9 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				Expect(getManifestWorkCount(East1ManagedCluster)).Should(BeElementOf(3, 4)) // DRCluster + VRG MW
 				deleteDRPC()
 				waitForCompletion("deleted")
-				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2))       // DRCluster + NS MW only
+				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1))       // DRCluster
 				Expect(getManagedClusterViewCount(East1ManagedCluster)).Should(Equal(0)) // NS + VRG MCV
-				deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+				ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			})
 			It("should delete the DRPC causing its referenced drpolicy to be deleted"+
 				" by drpolicy controller since no DRPCs reference it anymore", func() {
@@ -2041,7 +2042,7 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 		})
 		When("Deleting user Placement", func() {
 			It("Should cleanup DRPC", func() {
-				deleteUserPlacement(UserPlacementName, DefaultDRPCNamespace)
+				deleteUserPlacement()
 				drpc := getLatestDRPC(DefaultDRPCNamespace)
 				_, condition := getDRPCCondition(&drpc.Status, rmn.ConditionPeerReady)
 				Expect(condition).NotTo(BeNil())
@@ -2052,9 +2053,9 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				Expect(getManifestWorkCount(East1ManagedCluster)).Should(BeElementOf(3, 4)) // DRCluster + VRG + NS MW
 				deleteDRPC()
 				waitForCompletion("deleted")
-				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2))       // DRCluster + NS MW only
+				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1))       // DRCluster
 				Expect(getManagedClusterViewCount(East1ManagedCluster)).Should(Equal(0)) // NS + VRG MCV
-				deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+				ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			})
 			It("should delete the DRPC causing its referenced drpolicy to be deleted"+
 				" by drpolicy controller since no DRPCs reference it anymore", func() {
@@ -2129,7 +2130,7 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 		})
 		When("Deleting user Placement", func() {
 			It("Should cleanup DRPC", func() {
-				deleteUserPlacement(UserPlacementName, DefaultDRPCNamespace)
+				deleteUserPlacement()
 				drpc := getLatestDRPC(DefaultDRPCNamespace)
 				_, condition := getDRPCCondition(&drpc.Status, rmn.ConditionPeerReady)
 				Expect(condition).NotTo(BeNil())
@@ -2140,9 +2141,9 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				Expect(getManifestWorkCount(East1ManagedCluster)).Should(BeElementOf(3, 4)) // DRCluster + VRG + NS MW
 				deleteDRPC()
 				waitForCompletion("deleted")
-				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2))       // DRCluster + NS MW only
+				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1))       // DRCluster
 				Expect(getManagedClusterViewCount(East1ManagedCluster)).Should(Equal(0)) // NS + VRG MCV
-				deleteNamespaceMWsFromAllClusters(ApplicationNamespace)
+				ensureNamespaceMWsDeletedFromAllClusters(ApplicationNamespace)
 				deleteAppSet()
 				UseApplicationSet = false
 			})
@@ -2224,7 +2225,7 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				By("\n\n*** DELETE DRPC ***\n\n")
 				deleteDRPC()
 				waitForCompletion("deleted")
-				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2)) // DRCluster+NS MW
+				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1)) // DRCluster
 				deleteDRPolicySync()
 				deleteDRClustersSync()
 			})
@@ -2295,17 +2296,16 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				Expect(getManifestWorkCount(East1ManagedCluster)).Should(BeElementOf(3, 4)) // DRCluster + NS + VRG MW
 				deleteDRPC()
 				waitForCompletion("deleted")
-				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2)) // DRCluster + NS MW
+				Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1)) // DRCluster
 				deleteDRPolicySync()
 				deleteDRClustersSync()
-				deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+				ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			})
 		})
 	})
 
 	Context("DRPlacementControl Reconciler HubRecovery (Subscription)", func() {
 		var userPlacementRule1 *plrv1.PlacementRule
-		var drpc1 *rmn.DRPlacementControl
 
 		Specify("DRClusters", func() {
 			populateDRClusters()
@@ -2318,7 +2318,7 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				createDRPolicyAsync()
 
 				var placementObj client.Object
-				placementObj, drpc1 = CreatePlacementAndDRPC(
+				placementObj, _ = CreatePlacementAndDRPC(
 					DefaultDRPCNamespace, UserPlacementRuleName, East1ManagedCluster, UsePlacementRule)
 				userPlacementRule1 = placementObj.(*plrv1.PlacementRule)
 				Expect(userPlacementRule1).NotTo(BeNil())
@@ -2508,8 +2508,9 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 
 		When("Deleting DRPC", func() {
 			It("Should delete all VRGs", func() {
-				Expect(k8sClient.Delete(context.TODO(), drpc1)).Should(Succeed())
-				deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+				deleteDRPC()
+				waitForCompletion("deleted")
+				ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			})
 		})
 		Specify("delete drclusters", func() {
@@ -2519,7 +2520,6 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 
 	Context("DRPlacementControl Reconciler HubRecovery VRG Adoption (Subscription)", func() {
 		var userPlacementRule1 *plrv1.PlacementRule
-		var drpc1 *rmn.DRPlacementControl
 
 		Specify("DRClusters", func() {
 			populateDRClusters()
@@ -2538,7 +2538,7 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 				createVRGMW(DRPCCommonName, DefaultDRPCNamespace, East1ManagedCluster)
 
 				var placementObj client.Object
-				placementObj, drpc1 = CreatePlacementAndDRPC(
+				placementObj, _ = CreatePlacementAndDRPC(
 					DefaultDRPCNamespace, UserPlacementRuleName, East1ManagedCluster, UsePlacementRule)
 				userPlacementRule1 = placementObj.(*plrv1.PlacementRule)
 				Expect(userPlacementRule1).NotTo(BeNil())
@@ -2564,8 +2564,9 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 
 		When("Deleting DRPC", func() {
 			It("Should delete all VRGs", func() {
-				Expect(k8sClient.Delete(context.TODO(), drpc1)).Should(Succeed())
-				deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+				deleteDRPC()
+				waitForCompletion("deleted")
+				ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			})
 		})
 
@@ -2604,12 +2605,12 @@ var _ = Describe("DRPlacementControl Reconciler", func() {
 			})
 		})
 		Specify("Cleanup after tests", func() {
-			deleteUserPlacement(UserPlacementName, DefaultDRPCNamespace)
+			deleteUserPlacement()
 			deleteDRPC()
 			waitForCompletion("deleted")
-			Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(2))       // DRCluster + NS MW only
+			Expect(getManifestWorkCount(East1ManagedCluster)).Should(Equal(1))       // DRCluster
 			Expect(getManagedClusterViewCount(East1ManagedCluster)).Should(Equal(0)) // NS + VRG MCV
-			deleteNamespaceMWsFromAllClusters(DefaultDRPCNamespace)
+			ensureNamespaceMWsDeletedFromAllClusters(DefaultDRPCNamespace)
 			deleteDRPolicyAsync()
 			ensureDRPolicyIsDeleted(drpc.Spec.DRPolicyRef.Name)
 			deleteDRClustersAsync()