github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/hud/printer_test.go (about) 1 package hud 2 3 import ( 4 "bytes" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/assert" 9 10 "github.com/tilt-dev/tilt/pkg/model/logstore" 11 ) 12 13 func TestPrinterProgressBackoff(t *testing.T) { 14 out := &bytes.Buffer{} 15 now := time.Now() 16 printer := NewIncrementalPrinter(Stdout(out)) 17 18 printer.Print([]logstore.LogLine{ 19 logstore.LogLine{Text: "layer 1: Pending\n", ProgressID: "layer 1", Time: now}, 20 logstore.LogLine{Text: "layer 2: Pending\n", ProgressID: "layer 2", Time: now}, 21 }) 22 23 assert.Equal(t, "layer 1: Pending\nlayer 2: Pending\n", out.String()) 24 25 printer.Print([]logstore.LogLine{ 26 logstore.LogLine{Text: "layer 1: Partial\n", ProgressID: "layer 1", Time: now}, 27 }) 28 assert.Equal(t, "layer 1: Pending\nlayer 2: Pending\n", out.String()) 29 30 now = now.Add(time.Hour) 31 printer.Print([]logstore.LogLine{ 32 logstore.LogLine{Text: "layer 1: Done\n", ProgressID: "layer 1", Time: now.Add(time.Hour)}, 33 }) 34 assert.Equal(t, "layer 1: Pending\nlayer 2: Pending\nlayer 1: Done\n", out.String()) 35 36 } 37 func TestPrinterMustPrint(t *testing.T) { 38 out := &bytes.Buffer{} 39 now := time.Now() 40 printer := NewIncrementalPrinter(Stdout(out)) 41 42 printer.Print([]logstore.LogLine{ 43 logstore.LogLine{Text: "layer 1: Pending\n", ProgressID: "layer 1", Time: now}, 44 logstore.LogLine{Text: "layer 2: Pending\n", ProgressID: "layer 2", Time: now}, 45 }) 46 47 assert.Equal(t, "layer 1: Pending\nlayer 2: Pending\n", out.String()) 48 49 printer.Print([]logstore.LogLine{ 50 logstore.LogLine{Text: "layer 1: Done\n", ProgressID: "layer 1", ProgressMustPrint: true, Time: now}, 51 }) 52 assert.Equal(t, "layer 1: Pending\nlayer 2: Pending\nlayer 1: Done\n", out.String()) 53 54 }