mirror of
https://github.com/Maks1mS/bubbles.git
synced 2024-12-27 07:38:18 +03:00
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
|
package spinner_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/charmbracelet/bubbles/spinner"
|
||
|
)
|
||
|
|
||
|
func TestSpinnerNew(t *testing.T) {
|
||
|
assertEqualSpinner := func(t *testing.T, exp, got spinner.Spinner) {
|
||
|
t.Helper()
|
||
|
|
||
|
if exp.FPS != got.FPS {
|
||
|
t.Errorf("expecting %d FPS, got %d", exp.FPS, got.FPS)
|
||
|
}
|
||
|
|
||
|
if e, g := len(exp.Frames), len(got.Frames); e != g {
|
||
|
t.Fatalf("expecting %d frames, got %d", e, g)
|
||
|
}
|
||
|
|
||
|
for i, e := range exp.Frames {
|
||
|
if g := got.Frames[i]; e != g {
|
||
|
t.Errorf("expecting frame index %d with value %q, got %q", i, e, g)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
t.Run("default", func(t *testing.T) {
|
||
|
s := spinner.New()
|
||
|
|
||
|
assertEqualSpinner(t, spinner.Line, s.Spinner)
|
||
|
})
|
||
|
|
||
|
t.Run("WithSpinner", func(t *testing.T) {
|
||
|
customSpinner := spinner.Spinner{
|
||
|
Frames: []string{"a", "b", "c", "d"},
|
||
|
FPS: 16,
|
||
|
}
|
||
|
|
||
|
s := spinner.New(spinner.WithSpinner(customSpinner))
|
||
|
|
||
|
assertEqualSpinner(t, customSpinner, s.Spinner)
|
||
|
})
|
||
|
|
||
|
tests := map[string]spinner.Spinner{
|
||
|
"Line": spinner.Line,
|
||
|
"Dot": spinner.Dot,
|
||
|
"MiniDot": spinner.MiniDot,
|
||
|
"Jump": spinner.Jump,
|
||
|
"Pulse": spinner.Pulse,
|
||
|
"Points": spinner.Points,
|
||
|
"Globe": spinner.Globe,
|
||
|
"Moon": spinner.Moon,
|
||
|
"Monkey": spinner.Monkey,
|
||
|
}
|
||
|
|
||
|
for name, s := range tests {
|
||
|
t.Run(name, func(t *testing.T) {
|
||
|
assertEqualSpinner(t, spinner.New(spinner.WithSpinner(s)).Spinner, s)
|
||
|
})
|
||
|
}
|
||
|
}
|