go/pkg/cli/progressbar_test.go

61 lines
1.3 KiB
Go
Raw Normal View History

package cli
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestProgressBar_Good_Create(t *testing.T) {
pb := NewProgressBar(100)
require.NotNil(t, pb)
assert.Equal(t, 0, pb.Current())
assert.Equal(t, 100, pb.Total())
}
func TestProgressBar_Good_Increment(t *testing.T) {
pb := NewProgressBar(10)
pb.Increment()
assert.Equal(t, 1, pb.Current())
pb.Increment()
assert.Equal(t, 2, pb.Current())
}
func TestProgressBar_Good_SetMessage(t *testing.T) {
pb := NewProgressBar(10)
pb.SetMessage("Processing file.go")
assert.Equal(t, "Processing file.go", pb.message)
}
func TestProgressBar_Good_Set(t *testing.T) {
pb := NewProgressBar(100)
pb.Set(50)
assert.Equal(t, 50, pb.Current())
}
func TestProgressBar_Good_Done(t *testing.T) {
pb := NewProgressBar(5)
for i := 0; i < 5; i++ {
pb.Increment()
}
pb.Done()
// After Done, Current == Total
assert.Equal(t, 5, pb.Current())
}
func TestProgressBar_Bad_ExceedsTotal(t *testing.T) {
pb := NewProgressBar(2)
pb.Increment()
pb.Increment()
pb.Increment() // Should clamp to total
assert.Equal(t, 2, pb.Current())
}
func TestProgressBar_Good_Render(t *testing.T) {
pb := NewProgressBar(10)
pb.Set(5)
rendered := pb.String()
assert.Contains(t, rendered, "50%")
}