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  }