Files
Maven/cmd/mavend/reminderbody_test.go
T
claude df58710141 reminders: store what she says, show it in his clock (V-469)
Two of the four defects on the task.

The stored payload was the whole utterance, so /reminders and the agenda
recited "напомни завтра в 9 утра выпить таблетки" where the reminder is
"выпить таблетки". The marker is an instruction that was already carried out
and the hour is already a column, so reminderBody strips both, and falls back
to the unstripped body whenever stripping would leave nothing — a reminder
that fires and says nothing is worse than a wordy one.

The page rendered the raw {"text":...} envelope and the UTC instant. Both are
now done in mavweb: reminderRows unwraps the payload and formats through
Local(). The unwrap is a copy of store.ReminderText rather than a call to it,
because mavweb builds without CGO and internal/store carries the sqlite
driver — the ipc DTOs are decoupled from the store on purpose.

TestClarifySubjectAnswerFillsRatherThanClobbers asserted the hour survived as
a word in the payload. It now asserts the fire time, which is where the hour
lives.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 03:53:20 +04:00

22 lines
1.1 KiB
Go

package main
import "testing"
func TestReminderBody(t *testing.T) {
for _, tc := range []struct{ utterance, text, want string }{
// The row from the QA sitting: the whole utterance was the body.
{"напомни завтра в 9 утра выпить таблетки", "завтра в 9 утра выпить таблетки", "выпить таблетки"},
{"напомни мне позвонить маме в семь вечера", "позвонить маме в 7 вечера", "позвонить маме"},
{"напомни через полчаса проверить бэкап", "через полчаса проверить бэкап", "проверить бэкап"},
{"remind me to call mom at 7pm", "to call mom at 7pm", "to call mom"},
// Nothing left after stripping ⇒ keep what there was. A reminder that
// fires and says nothing is worse than a wordy one.
{"напомни завтра", "завтра", "завтра"},
{"", "", ""},
} {
if got := reminderBody(tc.utterance, tc.text); got != tc.want {
t.Errorf("reminderBody(%q, %q) = %q, want %q", tc.utterance, tc.text, got, tc.want)
}
}
}