Skip to content

Commit bde06a9

Browse files
committed
progress: Render never started trackers properly
1 parent bb0bb0b commit bde06a9

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

progress/render.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -412,10 +412,12 @@ func (p *Progress) renderTrackerStatsSpeedInternal(out *strings.Builder, speed s
412412

413413
func (p *Progress) renderTrackerStatsTime(outStats *strings.Builder, t *Tracker, hint renderHint) {
414414
var td, tp time.Duration
415-
if t.IsDone() {
416-
td = t.timeStop.Sub(t.timeStart)
417-
} else if !t.timeStart.IsZero() {
418-
td = time.Since(t.timeStart)
415+
if !t.timeStart.IsZero() {
416+
if t.IsDone() {
417+
td = t.timeStop.Sub(t.timeStart)
418+
} else {
419+
td = time.Since(t.timeStart)
420+
}
419421
}
420422
if hint.isOverallTracker {
421423
tp = p.style.Options.TimeOverallPrecision

progress/render_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,34 @@ func TestProgress_generateTrackerStr_Indeterminate(t *testing.T) {
338338
}
339339
}
340340

341+
func TestProgress_RenderNeverStarted(t *testing.T) {
342+
renderOutput := strings.Builder{}
343+
344+
pw := generateWriter()
345+
pw.SetOutputWriter(&renderOutput)
346+
347+
tr := &Tracker{DeferStart: true}
348+
pw.AppendTracker(tr)
349+
350+
go pw.Render()
351+
time.Sleep(renderWaitTime)
352+
tr.MarkAsDone()
353+
pw.Stop()
354+
time.Sleep(time.Second)
355+
356+
expectedOutPatterns := []*regexp.Regexp{
357+
regexp.MustCompile(`\s*\.\.\. {2}\?\?\? {2}\[\.{23}] \[0 in 0s]`),
358+
regexp.MustCompile(`\s*\.\.\. done! \[0 in 0s]`),
359+
}
360+
out := renderOutput.String()
361+
for _, expectedOutPattern := range expectedOutPatterns {
362+
if !expectedOutPattern.MatchString(out) {
363+
assert.Fail(t, "Failed to find a pattern in the Output.", expectedOutPattern.String())
364+
}
365+
}
366+
showOutputOnFailure(t, out)
367+
}
368+
341369
func TestProgress_RenderNothing(t *testing.T) {
342370
renderOutput := outputWriter{}
343371

0 commit comments

Comments
 (0)