package router import "testing" func TestParseMoneyQuery(t *testing.T) { cases := []struct { in string window MoneyWindow ok bool }{ {"сколько я потратил сегодня?", MoneyToday, true}, {"сколько я потратил в этом месяце?", MoneyMonth, true}, {"сколько я потратил?", MoneyMonth, true}, // month-to-date by default {"покажи мои траты", MoneyMonth, true}, {"какие у меня расходы за месяц", MoneyMonth, true}, {"how much did I spend today", MoneyToday, true}, {"сколько я заработал в этом месяце", MoneyMonth, true}, // Not about money. {"я потратил весь день на это", MoneyNone, false}, {"потратил много сил", MoneyNone, false}, {"какая погода?", MoneyNone, false}, {"я купил молоко", MoneyNone, false}, {"", MoneyNone, false}, } for _, c := range cases { w, ok := ParseMoneyQuery(c.in) if ok != c.ok || w != c.window { t.Errorf("ParseMoneyQuery(%q) = (%v, %v), want (%v, %v)", c.in, w, ok, c.window, c.ok) } } }