package router import ( "testing" "time" ) func TestParseHabitQuery(t *testing.T) { tests := []struct { in string ok bool wd time.Weekday hasWD bool }{ {"что я обычно делаю по вторникам?", true, time.Tuesday, true}, {"что я обычно делаю?", true, 0, false}, {"какие у меня привычки", true, 0, false}, {"что я каждую пятницу делаю", true, time.Friday, true}, {"what do i usually do on mondays?", true, time.Monday, true}, // No habit marker: this is a question about the coming Wednesday, and // the calendar owns it. Answering with an average answers the wrong // question. {"что я делаю в среду?", false, 0, false}, {"что у меня сегодня?", false, 0, false}, {"какие планы на сегодня?", false, 0, false}, {"", false, 0, false}, } for _, tt := range tests { q, ok := ParseHabitQuery(tt.in) if ok != tt.ok { t.Errorf("ParseHabitQuery(%q) ok = %v, want %v", tt.in, ok, tt.ok) continue } if !ok { continue } if q.HasWeekday != tt.hasWD { t.Errorf("ParseHabitQuery(%q) hasWeekday = %v, want %v", tt.in, q.HasWeekday, tt.hasWD) continue } if q.HasWeekday && q.Weekday != tt.wd { t.Errorf("ParseHabitQuery(%q) weekday = %v, want %v", tt.in, q.Weekday, tt.wd) } } }