WIP components (as built)
This commit is contained in:
102 files changed
+6538
-1
No files matched your search
@@ -0,0 +1,83 @@
|
||||
package mujica
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/egoist/mygo/ui"
|
||||
)
|
||||
|
||||
func dueTester(v *Date, opts *DueDatePickerOptions, n *int) *ui.Tester {
|
||||
return ui.NewTester(func(c *ui.Context) {
|
||||
Use(c, Settings{})
|
||||
o := *opts
|
||||
o.Today = calendarToday
|
||||
ui.Column(c).Padding(16).Children(func() {
|
||||
if DueDatePicker(c, v, o).Changed() {
|
||||
*n++
|
||||
}
|
||||
})
|
||||
}, 480, 520)
|
||||
}
|
||||
|
||||
func TestDueDatePickerShortcuts(t *testing.T) {
|
||||
v, n := Date{}, 0
|
||||
tt := dueTester(&v, &DueDatePickerOptions{}, &n)
|
||||
_ = tt.Click("Tomorrow")
|
||||
if v != oct(6) || n != 1 || !tt.HasText("Due tomorrow") {
|
||||
t.Fatalf("tomorrow %v", v)
|
||||
}
|
||||
_ = tt.Click("Next week")
|
||||
if v != oct(11) {
|
||||
t.Fatalf("next week (Sunday start) %v", v)
|
||||
}
|
||||
_ = tt.Click("Today")
|
||||
if v != oct(5) || !tt.HasText("Due today") {
|
||||
t.Fatalf("today %v", v)
|
||||
}
|
||||
_ = tt.Click("Open calendar")
|
||||
_ = tt.Click(datetimeTestLabel(oct(20)))
|
||||
if v != oct(20) || n != 4 {
|
||||
t.Fatalf("calendar pick %v (%d)", v, n)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDueDatePickerOverdueAndDone(t *testing.T) {
|
||||
v, n := oct(2), 0
|
||||
opts := &DueDatePickerOptions{}
|
||||
tt := dueTester(&v, opts, &n)
|
||||
if !tt.HasText("Overdue by 3 days") {
|
||||
t.Fatalf("overdue missing: %v", tt.Texts())
|
||||
}
|
||||
opts.Done = true
|
||||
tt.Frame()
|
||||
if tt.HasText("Overdue") {
|
||||
t.Fatal("a done task is not overdue")
|
||||
}
|
||||
opts.Disabled = true
|
||||
tt.Frame()
|
||||
_ = tt.Click("Today")
|
||||
if v != oct(2) || n != 0 {
|
||||
t.Fatal("disabled picker changed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDueDatePickerSnapshot(t *testing.T) {
|
||||
v := oct(2)
|
||||
snapshot(t, "due_date_picker", 360, 140, func(c *ui.Context) {
|
||||
ui.Column(c).Padding(16).Children(func() { DueDatePicker(c, &v, DueDatePickerOptions{Today: calendarToday}) })
|
||||
})
|
||||
}
|
||||
|
||||
func TestDueDatePickerSelectedShortcutMark(t *testing.T) {
|
||||
v, n := oct(5), 0
|
||||
tt := dueTester(&v, &DueDatePickerOptions{}, &n)
|
||||
if !tt.HasText("✓ Today") {
|
||||
t.Fatal("selected shortcut needs a non-color mark")
|
||||
}
|
||||
tt.Key(0, ui.KeyTab)
|
||||
tt.Key(0, ui.KeyTab)
|
||||
tt.Key(0, ui.KeyEnter)
|
||||
if v != oct(6) || n != 1 {
|
||||
t.Fatalf("keyboard shortcut date %v, changes %d", v, n)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user