@@ -155,6 +155,10 @@ func TestGradualRolloutEvaluator_BasicLinearRollout(t *testing.T) {
155155 assert .False (t , result1 .ActionRequired )
156156 assert .Nil (t , result1 .ActionType )
157157 assert .Equal (t , result1 .Message , "Rollout has progressed to this release target" )
158+ assert .NotNil (t , result1 .Details )
159+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result1 .Details ["rollout_start_time" ])
160+ assert .Equal (t , int32 (0 ), result1 .Details ["target_rollout_position" ])
161+ assert .Equal (t , baseTime .Format (time .RFC3339 ), result1 .Details ["target_rollout_time" ])
158162
159163 result2 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget2 )
160164 if err != nil {
@@ -165,6 +169,10 @@ func TestGradualRolloutEvaluator_BasicLinearRollout(t *testing.T) {
165169 assert .False (t , result2 .ActionRequired )
166170 assert .Nil (t , result2 .ActionType )
167171 assert .Equal (t , result2 .Message , "Rollout has progressed to this release target" )
172+ assert .NotNil (t , result2 .Details )
173+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result2 .Details ["rollout_start_time" ])
174+ assert .Equal (t , int32 (1 ), result2 .Details ["target_rollout_position" ])
175+ assert .Equal (t , baseTime .Add (60 * time .Minute ).Format (time .RFC3339 ), result2 .Details ["target_rollout_time" ])
168176
169177 result3 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget3 )
170178 if err != nil {
@@ -175,6 +183,10 @@ func TestGradualRolloutEvaluator_BasicLinearRollout(t *testing.T) {
175183 assert .True (t , result3 .ActionRequired )
176184 assert .Equal (t , * result3 .ActionType , oapi .Wait )
177185 assert .Equal (t , result3 .Message , "Rollout will start at 2025-01-01T02:00:00Z for this release target" )
186+ assert .NotNil (t , result3 .Details )
187+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result3 .Details ["rollout_start_time" ])
188+ assert .Equal (t , int32 (2 ), result3 .Details ["target_rollout_position" ])
189+ assert .Equal (t , "2025-01-01T02:00:00Z" , result3 .Details ["target_rollout_time" ])
178190}
179191
180192func TestGradualRolloutEvaluator_ZeroTimeScaleIntervalStartsImmediately (t * testing.T ) {
@@ -236,6 +248,10 @@ func TestGradualRolloutEvaluator_ZeroTimeScaleIntervalStartsImmediately(t *testi
236248 assert .False (t , result1 .ActionRequired )
237249 assert .Nil (t , result1 .ActionType )
238250 assert .Equal (t , result1 .Message , "Rollout has progressed to this release target" )
251+ assert .NotNil (t , result1 .Details )
252+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result1 .Details ["rollout_start_time" ])
253+ assert .Equal (t , int32 (0 ), result1 .Details ["target_rollout_position" ])
254+ assert .Equal (t , baseTime .Format (time .RFC3339 ), result1 .Details ["target_rollout_time" ])
239255
240256 result2 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget2 )
241257 if err != nil {
@@ -246,6 +262,10 @@ func TestGradualRolloutEvaluator_ZeroTimeScaleIntervalStartsImmediately(t *testi
246262 assert .False (t , result2 .ActionRequired )
247263 assert .Nil (t , result2 .ActionType )
248264 assert .Equal (t , result2 .Message , "Rollout has progressed to this release target" )
265+ assert .NotNil (t , result2 .Details )
266+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result2 .Details ["rollout_start_time" ])
267+ assert .Equal (t , int32 (1 ), result2 .Details ["target_rollout_position" ])
268+ assert .Equal (t , baseTime .Format (time .RFC3339 ), result2 .Details ["target_rollout_time" ])
249269
250270 result3 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget3 )
251271 if err != nil {
@@ -256,6 +276,10 @@ func TestGradualRolloutEvaluator_ZeroTimeScaleIntervalStartsImmediately(t *testi
256276 assert .False (t , result3 .ActionRequired )
257277 assert .Nil (t , result3 .ActionType )
258278 assert .Equal (t , result3 .Message , "Rollout has progressed to this release target" )
279+ assert .NotNil (t , result3 .Details )
280+ assert .Equal (t , versionCreatedAt .Format (time .RFC3339 ), result3 .Details ["rollout_start_time" ])
281+ assert .Equal (t , int32 (2 ), result3 .Details ["target_rollout_position" ])
282+ assert .Equal (t , baseTime .Format (time .RFC3339 ), result3 .Details ["target_rollout_time" ])
259283}
260284
261285func TestGradualRolloutEvaluator_UnsatisfiedApprovalRequirement (t * testing.T ) {
@@ -344,6 +368,10 @@ func TestGradualRolloutEvaluator_UnsatisfiedApprovalRequirement(t *testing.T) {
344368 assert .True (t , result1 .ActionRequired )
345369 assert .Equal (t , * result1 .ActionType , oapi .Wait )
346370 assert .Equal (t , result1 .Message , "Rollout has not started yet" )
371+ assert .NotNil (t , result1 .Details )
372+ assert .Nil (t , result1 .Details ["rollout_start_time" ])
373+ assert .Equal (t , int32 (0 ), result1 .Details ["target_rollout_position" ])
374+ assert .Nil (t , result1 .Details ["target_rollout_time" ])
347375
348376 result2 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget2 )
349377 if err != nil {
@@ -354,6 +382,10 @@ func TestGradualRolloutEvaluator_UnsatisfiedApprovalRequirement(t *testing.T) {
354382 assert .True (t , result2 .ActionRequired )
355383 assert .Equal (t , * result2 .ActionType , oapi .Wait )
356384 assert .Equal (t , result2 .Message , "Rollout has not started yet" )
385+ assert .NotNil (t , result2 .Details )
386+ assert .Nil (t , result2 .Details ["rollout_start_time" ])
387+ assert .Equal (t , int32 (1 ), result2 .Details ["target_rollout_position" ])
388+ assert .Nil (t , result2 .Details ["target_rollout_time" ])
357389
358390 result3 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget3 )
359391 if err != nil {
@@ -364,6 +396,10 @@ func TestGradualRolloutEvaluator_UnsatisfiedApprovalRequirement(t *testing.T) {
364396 assert .True (t , result3 .ActionRequired )
365397 assert .Equal (t , * result3 .ActionType , oapi .Wait )
366398 assert .Equal (t , result3 .Message , "Rollout has not started yet" )
399+ assert .NotNil (t , result3 .Details )
400+ assert .Nil (t , result3 .Details ["rollout_start_time" ])
401+ assert .Equal (t , int32 (2 ), result3 .Details ["target_rollout_position" ])
402+ assert .Nil (t , result3 .Details ["target_rollout_time" ])
367403}
368404
369405func TestGradualRolloutEvaluator_SatisfiedApprovalRequirement (t * testing.T ) {
@@ -470,6 +506,10 @@ func TestGradualRolloutEvaluator_SatisfiedApprovalRequirement(t *testing.T) {
470506 assert .False (t , result1 .ActionRequired )
471507 assert .Nil (t , result1 .ActionType )
472508 assert .Equal (t , result1 .Message , "Rollout has progressed to this release target" )
509+ assert .NotNil (t , result1 .Details )
510+ assert .Equal (t , oneHourLater .Format (time .RFC3339 ), result1 .Details ["rollout_start_time" ])
511+ assert .Equal (t , int32 (0 ), result1 .Details ["target_rollout_position" ])
512+ assert .Equal (t , oneHourLater .Format (time .RFC3339 ), result1 .Details ["target_rollout_time" ])
473513
474514 result2 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget2 )
475515 if err != nil {
@@ -480,6 +520,10 @@ func TestGradualRolloutEvaluator_SatisfiedApprovalRequirement(t *testing.T) {
480520 assert .False (t , result2 .ActionRequired )
481521 assert .Nil (t , result2 .ActionType )
482522 assert .Equal (t , result2 .Message , "Rollout has progressed to this release target" )
523+ assert .NotNil (t , result2 .Details )
524+ assert .Equal (t , oneHourLater .Format (time .RFC3339 ), result2 .Details ["rollout_start_time" ])
525+ assert .Equal (t , int32 (1 ), result2 .Details ["target_rollout_position" ])
526+ assert .Equal (t , twoHoursLater .Format (time .RFC3339 ), result2 .Details ["target_rollout_time" ])
483527
484528 result3 , err := evaluator .Evaluate (ctx , environment , version , releaseTarget3 )
485529 if err != nil {
@@ -490,4 +534,8 @@ func TestGradualRolloutEvaluator_SatisfiedApprovalRequirement(t *testing.T) {
490534 assert .True (t , result3 .ActionRequired )
491535 assert .Equal (t , * result3 .ActionType , oapi .Wait )
492536 assert .Equal (t , result3 .Message , "Rollout will start at 2025-01-01T03:00:00Z for this release target" )
537+ assert .NotNil (t , result3 .Details )
538+ assert .Equal (t , oneHourLater .Format (time .RFC3339 ), result3 .Details ["rollout_start_time" ])
539+ assert .Equal (t , int32 (2 ), result3 .Details ["target_rollout_position" ])
540+ assert .Equal (t , "2025-01-01T03:00:00Z" , result3 .Details ["target_rollout_time" ])
493541}
0 commit comments