@@ -268,7 +268,7 @@ desired_outcome: true
268
268
func TestMarkUpgrade (t * testing.T ) {
269
269
var parsed123SNAPSHOT = agtversion .NewParsedSemVer (1 , 2 , 3 , "SNAPSHOT" , "" )
270
270
var parsed456SNAPSHOT = agtversion .NewParsedSemVer (4 , 5 , 6 , "SNAPSHOT" , "" )
271
-
271
+ var parsed920SNAPSHOT = agtversion . NewParsedSemVer ( 9 , 2 , 0 , "SNAPSHOT" , "" )
272
272
// fix a timestamp (truncated to the second because of loss of precision during marshalling/unmarshalling)
273
273
updatedOnNow := time .Now ().UTC ().Truncate (time .Second )
274
274
@@ -371,7 +371,7 @@ func TestMarkUpgrade(t *testing.T) {
371
371
},
372
372
},
373
373
{
374
- name : "rollback window specified - available rollbacks must be present " ,
374
+ name : "rollback window specified but new version is too low - no rollbacks " ,
375
375
args : args {
376
376
updatedOn : updatedOnNow ,
377
377
currentAgent : agentInstall {
@@ -410,6 +410,52 @@ func TestMarkUpgrade(t *testing.T) {
410
410
TargetVersion : "4.5.6-SNAPSHOT" ,
411
411
State : "UPG_REPLACING" ,
412
412
ActionID : "" ,
413
+ },
414
+ DesiredOutcome : OUTCOME_UPGRADE ,
415
+ }
416
+ assert .Equal (t , expectedMarker , actualMarker )
417
+ },
418
+ },
419
+ {
420
+ name : "rollback window specified and new version is at least 9.2.0-SNAPSHOT - available rollbacks must be present" ,
421
+ args : args {
422
+ updatedOn : updatedOnNow ,
423
+ currentAgent : agentInstall {
424
+ parsedVersion : parsed920SNAPSHOT ,
425
+ version : "9.2.0-SNAPSHOT" ,
426
+ hash : "newagt" ,
427
+ versionedHome : filepath .Join ("data" , "elastic-agent-9.2.0-SNAPSHOT-newagt" ),
428
+ },
429
+ previousAgent : agentInstall {
430
+ parsedVersion : parsed123SNAPSHOT ,
431
+ version : "1.2.3-SNAPSHOT" ,
432
+ hash : "prvagt" ,
433
+ versionedHome : filepath .Join ("data" , "elastic-agent-1.2.3-SNAPSHOT-prvagt" ),
434
+ },
435
+ action : nil ,
436
+ details : details .NewDetails ("9.2.0-SNAPSHOT" , details .StateReplacing , "" ),
437
+ desiredOutcome : OUTCOME_UPGRADE ,
438
+ rollbackWindow : 7 * 24 * time .Hour ,
439
+ },
440
+ wantErr : assert .NoError ,
441
+ assertAfterMark : func (t * testing.T , dataDir string ) {
442
+ actualMarker , err := LoadMarker (dataDir )
443
+ require .NoError (t , err , "error reading actualMarker content after writing" )
444
+
445
+ expectedMarker := & UpdateMarker {
446
+ Version : "9.2.0-SNAPSHOT" ,
447
+ Hash : "newagt" ,
448
+ VersionedHome : filepath .Join ("data" , "elastic-agent-9.2.0-SNAPSHOT-newagt" ),
449
+ UpdatedOn : updatedOnNow ,
450
+ PrevVersion : "1.2.3-SNAPSHOT" ,
451
+ PrevHash : "prvagt" ,
452
+ PrevVersionedHome : filepath .Join ("data" , "elastic-agent-1.2.3-SNAPSHOT-prvagt" ),
453
+ Acked : false ,
454
+ Action : nil ,
455
+ Details : & details.Details {
456
+ TargetVersion : "9.2.0-SNAPSHOT" ,
457
+ State : "UPG_REPLACING" ,
458
+ ActionID : "" ,
413
459
Metadata : details.Metadata {
414
460
RollbacksAvailable : []details.RollbackAvailable {
415
461
{
0 commit comments