feat: команда /help — справка по всем командам бота
This commit is contained in:
@@ -162,4 +162,34 @@ func TestNew_UpdateWiring(t *testing.T) {
|
||||
if a2.Updater.Token != "embedded-update-token" {
|
||||
t.Errorf("Token = %q, want embedded-update-token (вшитый приоритетнее)", a2.Updater.Token)
|
||||
}
|
||||
}
|
||||
|
||||
// TestHelp_IsBinaryCommand проверяет, что /help распознаётся cmdName и, значит,
|
||||
// в handleIncoming попадёт в бинарную ветку (не в машину состояний задач).
|
||||
// Косвенно: /help не должен иметь аргумента-номера задачи (как /status N).
|
||||
func TestHelp_IsBinaryCommand(t *testing.T) {
|
||||
if got := cmdName("/help"); got != "/help" {
|
||||
t.Errorf("cmdName(/help) = %q, want /help", got)
|
||||
}
|
||||
if hasArg("/help") {
|
||||
t.Errorf("/help не должен требовать аргумент")
|
||||
}
|
||||
if got := cmdName("/help foo"); got != "/help" {
|
||||
t.Errorf("cmdName(/help foo) = %q, want /help", got)
|
||||
}
|
||||
}
|
||||
|
||||
// TestHelpText_ContainsCommands проверяет, что справка упоминает все команды.
|
||||
func TestHelpText_ContainsCommands(t *testing.T) {
|
||||
for _, cmd := range []string{
|
||||
"/start", "/cancel", "/skip", "/retry", "/status", "/continue",
|
||||
"/update", "/help",
|
||||
} {
|
||||
if !strings.Contains(helpText, cmd) {
|
||||
t.Errorf("helpText не упоминает команду %s", cmd)
|
||||
}
|
||||
}
|
||||
if !strings.Contains(helpText, "Ratatoskr") {
|
||||
t.Errorf("helpText не содержит имени бота")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user