package router import "testing" func TestParseTaskCapture(t *testing.T) { cases := []struct { in string text string ok bool }{ {"добавь в задачи купить молоко", "купить молоко", true}, {"Добавь в список дел: позвонить в банк", "позвонить в банк", true}, {"запиши задачу починить кран.", "починить кран", true}, {"новая задача — оплатить интернет", "оплатить интернет", true}, {"add a task buy milk", "buy milk", true}, // A marker with nothing after it files nothing. {"добавь в задачи", "", false}, {"новая задача", "", false}, // Not a capture: he is talking, not filing. {"надо бы поспать", "", false}, {"я не добавил молоко в список", "", false}, {"какие у меня задачи?", "", false}, {"", "", false}, } for _, c := range cases { text, ok := ParseTaskCapture(c.in) if ok != c.ok || text != c.text { t.Errorf("ParseTaskCapture(%q) = (%q, %v), want (%q, %v)", c.in, text, ok, c.text, c.ok) } } } func TestIsTaskListQuery(t *testing.T) { yes := []string{ "какие у меня задачи?", "что мне нужно сделать?", "покажи список дел", "сколько у меня задач?", "задачи", "мои задачи", "what should I do", } for _, s := range yes { if !IsTaskListQuery(s) { t.Errorf("IsTaskListQuery(%q) = false, want true", s) } } no := []string{ "как дела?", "какая погода?", "напомни мне позвонить маме в шесть", "я сделал зарядку", "", } for _, s := range no { if IsTaskListQuery(s) { t.Errorf("IsTaskListQuery(%q) = true, want false", s) } } }