@@ -743,6 +743,35 @@ p, role:admin, projects, update, *, allow`)
743
743
_ , err := projectServer .GetSyncWindowsState (ctx , & project.SyncWindowsQuery {Name : projectWithSyncWindows .Name })
744
744
assert .EqualError (t , err , "rpc error: code = PermissionDenied desc = permission denied: projects, get, test" )
745
745
})
746
+
747
+ t .Run ("TestAddSyncWindowWhenAnAppReferencesAClusterThatDoesNotExist" , func (t * testing.T ) {
748
+ _ = enforcer .SetBuiltinPolicy (`p, role:admin, projects, get, *, allow
749
+ p, role:admin, projects, update, *, allow` )
750
+ sessionMgr := session .NewSessionManager (settingsMgr , test .NewFakeProjLister (), "" , nil , session .NewUserStateStorage (nil ))
751
+ projectWithAppWithInvalidCluster := existingProj .DeepCopy ()
752
+
753
+ argoDB := db .NewDB ("default" , settingsMgr , kubeclientset )
754
+ invalidApp := v1alpha1.Application {
755
+ ObjectMeta : metav1.ObjectMeta {Name : "test-invalid" , Namespace : "default" },
756
+ Spec : v1alpha1.ApplicationSpec {Source : & v1alpha1.ApplicationSource {}, Project : "test" , Destination : v1alpha1.ApplicationDestination {Namespace : "ns3" , Server : "https://server4" }},
757
+ }
758
+ projectServer := NewServer ("default" , fake .NewSimpleClientset (), apps .NewSimpleClientset (projectWithAppWithInvalidCluster , & invalidApp ), enforcer , sync .NewKeyLock (), sessionMgr , nil , projInformer , settingsMgr , argoDB , testEnableEventList )
759
+
760
+ // Add sync window
761
+ syncWindow := v1alpha1.SyncWindow {
762
+ Kind : "deny" ,
763
+ Schedule : "* * * * *" ,
764
+ Duration : "1h" ,
765
+ Applications : []string {"*" },
766
+ Clusters : []string {"*" },
767
+ }
768
+ projectWithAppWithInvalidCluster .Spec .SyncWindows = append (projectWithAppWithInvalidCluster .Spec .SyncWindows , & syncWindow )
769
+ res , err := projectServer .Update (ctx , & project.ProjectUpdateRequest {
770
+ Project : projectWithAppWithInvalidCluster ,
771
+ })
772
+ require .NoError (t , err )
773
+ assert .Len (t , res .Spec .SyncWindows , 1 )
774
+ })
746
775
}
747
776
748
777
func newEnforcer (kubeclientset * fake.Clientset ) * rbac.Enforcer {
0 commit comments