Files
MujicaUI/examples/gallery/pages_devtools_test.go
T

88 lines
2.3 KiB
Go

package main
import (
"testing"
"github.com/egoist/mygo/ui"
mujica "mujicaui"
)
func devPageTester(p page, mode mujica.Mode, events *[]string) *ui.Tester {
return ui.NewTester(func(c *ui.Context) {
mujica.Use(c, mujica.Settings{Mode: mode})
ui.Column(c).Padding(16).Children(func() { p.Demo(c, func(s string) { *events = append(*events, s) }) })
}, 1000, 800)
}
func TestDevtoolsPagesControlsAndThemes(t *testing.T) {
if len(devtoolsPages) != 17 {
t.Fatalf("pages=%d", len(devtoolsPages))
}
for _, p := range devtoolsPages {
t.Run(p.Name, func(t *testing.T) {
for _, mode := range []mujica.Mode{mujica.Light, mujica.Dark} {
var events []string
tt := devPageTester(p, mode, &events)
if p.Category != "Dashboards & Dev Tools" || p.Code == "" || p.Keys == "" {
t.Fatal("page metadata")
}
if err := tt.Click("Disabled"); err != nil {
t.Fatal(err)
}
if len(events) != 1 || events[0] != "disabled changed" {
t.Fatalf("control events %v", events)
}
if err := tt.Click("Disabled"); err != nil {
t.Fatal(err)
}
if _, ok := tt.Find("Empty data"); ok {
if err := tt.Click("Empty data"); err != nil {
t.Fatal(err)
}
if events[len(events)-1] != "data state changed" {
t.Fatal("empty event")
}
if err := tt.Click("Empty data"); err != nil {
t.Fatal(err)
}
}
}
})
}
}
func TestDevtoolsDemoEvents(t *testing.T) {
cases := []struct{ id, label, event string }{
{"443", "Acknowledge", "acknowledged cpu"},
{"447", "Append line", "line appended"},
{"450", "Append sample", "sample appended"},
{"451", "Refresh", "refresh requested"},
{"453", "Copy path", "path copied"},
{"454", "Format", "JSON edited; valid=true"},
{"456", "Send", "send requested"},
{"458", "Add row", "pairs edited"},
}
for _, tc := range cases {
t.Run(tc.id, func(t *testing.T) {
for _, p := range devtoolsPages {
if p.ID != tc.id {
continue
}
var events []string
tt := devPageTester(p, mujica.Light, &events)
if err := tt.Click(tc.label); err != nil {
t.Fatal(err)
}
found := false
for _, event := range events {
found = found || event == tc.event
}
if !found {
t.Fatalf("events %v want %s", events, tc.event)
}
}
})
}
}