mirror of https://github.com/schollz/croc.git
46 lines
757 B
Go
46 lines
757 B
Go
package uiprogress
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"strings"
|
|
"sync"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestStoppingPrintout(t *testing.T) {
|
|
progress := New()
|
|
progress.SetRefreshInterval(time.Millisecond * 10)
|
|
|
|
var buffer = &bytes.Buffer{}
|
|
progress.SetOut(buffer)
|
|
|
|
bar := progress.AddBar(100)
|
|
progress.Start()
|
|
|
|
var wg sync.WaitGroup
|
|
|
|
wg.Add(1)
|
|
|
|
go func() {
|
|
for i := 0; i <= 80; i = i + 10 {
|
|
bar.Set(i)
|
|
time.Sleep(time.Millisecond * 5)
|
|
}
|
|
|
|
wg.Done()
|
|
}()
|
|
|
|
wg.Wait()
|
|
|
|
progress.Stop()
|
|
fmt.Fprintf(buffer, "foo")
|
|
|
|
var wantSuffix = "[======================================================>-------------]\nfoo"
|
|
|
|
if !strings.HasSuffix(buffer.String(), wantSuffix) {
|
|
t.Errorf("Content that should be printed after stop not appearing on buffer.")
|
|
}
|
|
}
|