Files
MujicaUI/capability_cards_test.go
T
2026-10-05 14:24:42 -04:00

74 lines
1.8 KiB
Go

package mujica
import (
"testing"
"github.com/egoist/mygo/ui"
)
func TestCapabilityCardsExample(t *testing.T) {
got := ""
tt := chatTester(900, 400, func(c *ui.Context) {
if v := CapabilityCards(c, chatCards(), CapabilityCardsOptions{}); v.Example != "" {
got = v.Example
}
})
if !tt.HasText("Banquets, seating and schedules.") {
t.Fatal("description missing")
}
if err := tt.Click("“Plan a ball for 200 guests”"); err != nil {
t.Fatal(err)
}
if got != "Plan a ball for 200 guests" {
t.Fatalf("example %q", got)
}
// Tab moves from the clicked example to the next card's.
got = ""
tt.Key(0, ui.KeyTab)
tt.Key(0, ui.KeyEnter)
if got != "Explain the minuet" {
t.Fatalf("keys chose %q", got)
}
}
func TestCapabilityCardsColumnsAndDisabled(t *testing.T) {
got := ""
var g *ui.Element
tt := chatTester(900, 600, func(c *ui.Context) {
v := CapabilityCards(c, chatCards(), CapabilityCardsOptions{Columns: 1, Disabled: true})
g = v.Element
if v.Example != "" {
got = v.Example
}
})
_ = tt.Click("“Explain the minuet”")
tt.Key(0, ui.KeyTab)
tt.Key(0, ui.KeyEnter)
if got != "" {
t.Fatalf("disabled cards chose %q", got)
}
a, _ := tt.Find("Write")
b, _ := tt.Find("Plan")
if b.Y <= a.Y || g == nil {
t.Fatalf("one column should stack cards: %v %v", a, b)
}
}
func TestCapabilityCardsNeedTitles(t *testing.T) {
defer func() {
if recover() == nil {
t.Fatal("no panic")
}
}()
ui.Render(func(c *ui.Context) {
Use(c, Settings{})
CapabilityCards(c, []CapabilityCard{{}}, CapabilityCardsOptions{})
}, 100, 100, 1)
}
func TestCapabilityCardsSnapshot(t *testing.T) {
snapshot(t, "capability_cards", 860, 200, func(c *ui.Context) {
ui.Column(c).Padding(16).Children(func() { CapabilityCards(c, chatCards(), CapabilityCardsOptions{}) })
})
}