38 lines
929 B
Go
38 lines
929 B
Go
package login
|
|
|
|
import (
|
|
"path/filepath"
|
|
"slices"
|
|
"testing"
|
|
|
|
"github.com/ayn2op/discordo/internal/config"
|
|
"github.com/ayn2op/tview/keybind"
|
|
)
|
|
|
|
func TestModelShortHelp(t *testing.T) {
|
|
cfg, err := config.Load(filepath.Join(t.TempDir(), "config.toml"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
m := NewModel(cfg)
|
|
for _, tt := range []struct {
|
|
name string
|
|
active int
|
|
wantPrev, wantNext bool
|
|
}{
|
|
{"first tab", 0, false, true},
|
|
{"middle tab", 1, true, true},
|
|
{"last tab", len(m.tabs) - 1, true, false},
|
|
} {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
m.active = tt.active
|
|
short := m.ShortHelp()
|
|
has := func(desc string) bool {
|
|
return slices.ContainsFunc(short, func(k keybind.Keybind) bool { return k.Help().Desc == desc })
|
|
}
|
|
if has("prev tab") != tt.wantPrev || has("next tab") != tt.wantNext {
|
|
t.Fatalf("prev = %v, next = %v", has("prev tab"), has("next tab"))
|
|
}
|
|
})
|
|
}
|
|
}
|