@@ -369,8 +369,8 @@ func TestDiscoveryServer(t *testing.T) {
369
369
staticMatchers Matchers
370
370
wantInstalledInstances []string
371
371
wantDiscoveryConfigStatus * discoveryconfig.Status
372
- userTasksDiscoverCheck require.ValueAssertionFunc
373
372
cloudClients cloud.Clients
373
+ userTasksDiscoverCheck func (t * testing.T , userTasksClt services.UserTasks )
374
374
ssmRunError error
375
375
}{
376
376
{
@@ -701,10 +701,9 @@ func TestDiscoveryServer(t *testing.T) {
701
701
staticMatchers : Matchers {},
702
702
discoveryConfig : discoveryConfigForUserTaskEC2Test ,
703
703
wantInstalledInstances : []string {},
704
- userTasksDiscoverCheck : func (tt require.TestingT , i1 interface {}, i2 ... interface {}) {
705
- existingTasks , ok := i1 .([]* usertasksv1.UserTask )
706
- require .True (t , ok , "failed to get existing tasks: %T" , i1 )
707
- require .Len (t , existingTasks , 1 )
704
+ userTasksDiscoverCheck : func (t * testing.T , userTasksClt services.UserTasks ) {
705
+ atLeastOneUserTask := 1
706
+ existingTasks := fetchAllUserTasks (t , userTasksClt , atLeastOneUserTask , 0 )
708
707
existingTask := existingTasks [0 ]
709
708
710
709
require .Equal (t , "OPEN" , existingTask .GetSpec ().State )
@@ -771,10 +770,10 @@ func TestDiscoveryServer(t *testing.T) {
771
770
staticMatchers : Matchers {},
772
771
discoveryConfig : discoveryConfigForUserTaskEKSTest ,
773
772
wantInstalledInstances : []string {},
774
- userTasksDiscoverCheck : func (tt require. TestingT , i1 interface {}, i2 ... interface {} ) {
775
- existingTasks , ok := i1 .([] * usertasksv1. UserTask )
776
- require . True ( t , ok , "failed to get existing tasks: %T" , i1 )
777
- require . Len (t , existingTasks , 1 )
773
+ userTasksDiscoverCheck : func (t * testing. T , userTasksClt services. UserTasks ) {
774
+ atLeastOneUserTask := 1
775
+ atLeastTwoTaskItems := 2
776
+ existingTasks := fetchAllUserTasks (t , userTasksClt , atLeastOneUserTask , atLeastTwoTaskItems )
778
777
existingTask := existingTasks [0 ]
779
778
780
779
require .Equal (t , "OPEN" , existingTask .GetSpec ().State )
@@ -841,10 +840,10 @@ func TestDiscoveryServer(t *testing.T) {
841
840
staticMatchers : Matchers {},
842
841
discoveryConfig : discoveryConfigWithAndWithoutAppDiscovery ,
843
842
wantInstalledInstances : []string {},
844
- userTasksDiscoverCheck : func (t require. TestingT , i1 interface {}, i2 ... interface {} ) {
845
- existingTasks , ok := i1 .([] * usertasksv1. UserTask )
846
- require . True ( t , ok , "failed to get existing tasks: %T" , i1 )
847
- require . Len (t , existingTasks , 2 )
843
+ userTasksDiscoverCheck : func (t * testing. T , userTasksClt services. UserTasks ) {
844
+ atLeastOneUserTask := 2
845
+ atLeastTwoTaskItems := 2
846
+ existingTasks := fetchAllUserTasks (t , userTasksClt , atLeastOneUserTask , atLeastTwoTaskItems )
848
847
existingTask := existingTasks [0 ]
849
848
if existingTask .Spec .DiscoverEks .AppAutoDiscover == false {
850
849
existingTask = existingTasks [1 ]
@@ -987,26 +986,48 @@ func TestDiscoveryServer(t *testing.T) {
987
986
require .Equal (t , expectedValue , got .IntegrationDiscoveredResources [expectedKey ])
988
987
}
989
988
return true
990
- }, 500 * time .Millisecond , 50 * time .Millisecond )
989
+ }, 1 * time .Second , 50 * time .Millisecond )
991
990
}
992
991
if tc .userTasksDiscoverCheck != nil {
993
- var allUserTasks []* usertasksv1.UserTask
994
- var nextToken string
995
- for {
996
- var userTasks []* usertasksv1.UserTask
997
- userTasks , nextToken , err = tlsServer .Auth ().UserTasks .ListUserTasks (context .Background (), 0 , "" , & usertasksv1.ListUserTasksFilters {})
998
- require .NoError (t , err )
999
- allUserTasks = append (allUserTasks , userTasks ... )
1000
- if nextToken == "" {
1001
- break
1002
- }
1003
- }
1004
- tc .userTasksDiscoverCheck (t , allUserTasks )
992
+ tc .userTasksDiscoverCheck (t , tlsServer .Auth ().UserTasks )
1005
993
}
1006
994
})
1007
995
}
1008
996
}
1009
997
998
+ func fetchAllUserTasks (t * testing.T , userTasksClt services.UserTasks , minUserTasks , minUserTaskResources int ) []* usertasksv1.UserTask {
999
+ var existingTasks []* usertasksv1.UserTask
1000
+ require .EventuallyWithT (t , func (t * assert.CollectT ) {
1001
+ var allTasks []* usertasksv1.UserTask
1002
+ var nextToken string
1003
+ for {
1004
+ var userTasks []* usertasksv1.UserTask
1005
+ userTasks , nextTokenResp , err := userTasksClt .ListUserTasks (context .Background (), 0 , nextToken , & usertasksv1.ListUserTasksFilters {})
1006
+ assert .NoError (t , err )
1007
+ allTasks = append (allTasks , userTasks ... )
1008
+ if nextTokenResp == "" {
1009
+ break
1010
+ }
1011
+ nextToken = nextTokenResp
1012
+ }
1013
+ existingTasks = allTasks
1014
+
1015
+ if ! assert .GreaterOrEqual (t , len (allTasks ), minUserTasks ) {
1016
+ return
1017
+ }
1018
+
1019
+ gotResources := 0
1020
+ for _ , task := range allTasks {
1021
+ gotResources += len (task .GetSpec ().GetDiscoverEc2 ().GetInstances ())
1022
+ gotResources += len (task .GetSpec ().GetDiscoverEks ().GetClusters ())
1023
+ gotResources += len (task .GetSpec ().GetDiscoverRds ().GetDatabases ())
1024
+ }
1025
+ assert .GreaterOrEqual (t , gotResources , minUserTaskResources )
1026
+ }, 5 * time .Second , 50 * time .Millisecond )
1027
+
1028
+ return existingTasks
1029
+ }
1030
+
1010
1031
func TestDiscoveryServerConcurrency (t * testing.T ) {
1011
1032
t .Parallel ()
1012
1033
ctx := context .Background ()
0 commit comments