@@ -113,47 +113,52 @@ func TestUpdateSystemPlatform(t *testing.T) {
113113 deleteData (t )
114114}
115115
116- func TestUploadHandler (t * testing.T ) {
117- utils .SkipWithoutDB (t )
118- utils .SkipWithoutPlatform (t )
119- core .SetupTestEnvironment ()
120- configure ()
121- deleteData (t )
122-
123- _ = getOrCreateTestAccount (t )
124- event := createTestUploadEvent (id , id , "puptoo" , true , false )
125-
126- event .Host .SystemProfile .OperatingSystem = inventory.OperatingSystem {Major : 8 }
127- repos := append (event .Host .SystemProfile .GetYumRepos (), inventory.YumRepo {ID : "epel" , Enabled : true })
128- event .Host .SystemProfile .YumRepos = & repos
129-
130- err := HandleUpload (event )
131- assert .NoError (t , err )
132-
133- reporterID := 1
134- assertSystemInDB (t , id , nil , & reporterID )
135-
136- var sys models.SystemPlatform
137- assert .NoError (t , database .DB .Where ("inventory_id = ?::uuid" , id ).Find (& sys ).Error )
138- after := time .Now ().Add (time .Hour )
139- sys .LastEvaluation = & after
140- assert .NoError (t , database .DB .Save (& sys ).Error )
141- // Test that second upload did not cause re-evaluation
142- logHook := utils .NewTestLogHook ()
143- log .AddHook (logHook )
144- err = HandleUpload (event )
145- assert .NoError (t , err )
146- assertInLogs (t , UploadSuccessNoEval , logHook .LogEntries ... )
147- assertSystemReposInDB (t , sys .ID , []string {"epel-8" })
148- deleteData (t )
116+ func TestUploadHandlerCreatedSystem (t * testing.T ) {
117+ eventTypes := []string {"created" , "updated" }
118+ for _ , eventType := range eventTypes {
119+ t .Run (eventType , func (t * testing.T ) {
120+ utils .SkipWithoutDB (t )
121+ utils .SkipWithoutPlatform (t )
122+ core .SetupTestEnvironment ()
123+ configure ()
124+ deleteData (t )
125+
126+ _ = getOrCreateTestAccount (t )
127+ event := createTestUploadEvent (id , id , "puptoo" , true , false , eventType )
128+
129+ event .Host .SystemProfile .OperatingSystem = inventory.OperatingSystem {Major : 8 }
130+ repos := append (event .Host .SystemProfile .GetYumRepos (), inventory.YumRepo {ID : "epel" , Enabled : true })
131+ event .Host .SystemProfile .YumRepos = & repos
132+
133+ err := HandleUpload (event )
134+ assert .NoError (t , err )
135+
136+ reporterID := 1
137+ assertSystemInDB (t , id , nil , & reporterID )
138+
139+ var sys models.SystemPlatform
140+ assert .NoError (t , database .DB .Where ("inventory_id = ?::uuid" , id ).Find (& sys ).Error )
141+ after := time .Now ().Add (time .Hour )
142+ sys .LastEvaluation = & after
143+ assert .NoError (t , database .DB .Save (& sys ).Error )
144+ // Test that second upload did not cause re-evaluation
145+ logHook := utils .NewTestLogHook ()
146+ log .AddHook (logHook )
147+ err = HandleUpload (event )
148+ assert .NoError (t , err )
149+ assertInLogs (t , UploadSuccessNoEval , logHook .LogEntries ... )
150+ assertSystemReposInDB (t , sys .ID , []string {"epel-8" })
151+ deleteData (t )
152+ })
153+ }
149154}
150155
151156func TestUploadHandlerWarn (t * testing.T ) {
152157 utils .SkipWithoutDB (t )
153158 configure ()
154159 logHook := utils .NewTestLogHook ()
155160 log .AddHook (logHook )
156- noPkgsEvent := createTestUploadEvent ("1" , id , "puptoo" , false , false )
161+ noPkgsEvent := createTestUploadEvent ("1" , id , "puptoo" , false , false , "created" )
157162 err := HandleUpload (noPkgsEvent )
158163 if assert .Error (t , err ) {
159164 assert .ErrorIs (t , err , ErrNoPackages )
@@ -166,7 +171,7 @@ func TestUploadHandlerWarnSkipReporter(t *testing.T) {
166171 configure ()
167172 logHook := utils .NewTestLogHook ()
168173 log .AddHook (logHook )
169- noPkgsEvent := createTestUploadEvent ("1" , id , "yupana" , false , false )
174+ noPkgsEvent := createTestUploadEvent ("1" , id , "yupana" , false , false , "created" )
170175 err := HandleUpload (noPkgsEvent )
171176 if assert .Error (t , err ) {
172177 assert .ErrorIs (t , err , ErrReporter )
@@ -179,7 +184,7 @@ func TestUploadHandlerWarnSkipHostType(t *testing.T) {
179184 configure ()
180185 logHook := utils .NewTestLogHook ()
181186 log .AddHook (logHook )
182- event := createTestUploadEvent ("1" , id , "puptoo" , true , false )
187+ event := createTestUploadEvent ("1" , id , "puptoo" , true , false , "created" )
183188 event .Host .SystemProfile .HostType = "edge"
184189 err := HandleUpload (event )
185190 if assert .Error (t , err ) {
@@ -194,7 +199,7 @@ func TestUploadHandlerError1(t *testing.T) {
194199 configure ()
195200 logHook := utils .NewTestLogHook ()
196201 log .AddHook (logHook )
197- event := createTestUploadEvent ("1" , id , "puptoo" , true , false )
202+ event := createTestUploadEvent ("1" , id , "puptoo" , true , false , "created" )
198203 * event .Host .OrgID = ""
199204 err := HandleUpload (event )
200205 if assert .Error (t , err ) {
@@ -216,10 +221,11 @@ func TestUploadHandlerError2(t *testing.T) {
216221 configure ()
217222 deleteData (t )
218223 evalWriter = & erroringWriter {}
224+ createdSystemsWriter = & erroringWriter {}
219225 logHook := utils .NewTestLogHook ()
220226 log .AddHook (logHook )
221227 _ = getOrCreateTestAccount (t )
222- event := createTestUploadEvent ("1" , id , "puptoo" , true , false )
228+ event := createTestUploadEvent ("1" , id , "puptoo" , true , false , "created" )
223229 err := HandleUpload (event )
224230 assert .Nil (t , err )
225231 time .Sleep (2 * uploadEvalTimeout )
@@ -316,7 +322,7 @@ func TestUpdateSystemPlatformYumUpdates(t *testing.T) {
316322 HTTPClient : & http.Client {},
317323 Debug : true ,
318324 }
319- hostEvent := createTestUploadEvent ("1" , id , "puptoo" , false , true )
325+ hostEvent := createTestUploadEvent ("1" , id , "puptoo" , false , true , "created" )
320326 yumUpdates , err := getYumUpdates (hostEvent , httpClient )
321327 assert .Nil (t , err )
322328
0 commit comments