From f42570fce20e418a199d577cdba5af17d5e5b41c Mon Sep 17 00:00:00 2001 From: Vladimir V Maksimov Date: Thu, 25 Jun 2026 09:29:24 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B5=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D0=B2=D0=B0?= =?UTF-8?q?=D1=8E=D1=89=D0=B5=D0=B3=D0=BE=20```=20=E2=80=94=20=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=20markdown=20=D1=81=D1=8A=D0=B5=D0=B4=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D0=BF=D0=B5=D1=80=D0=B2=D1=83=D1=8E=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В Pachca/Telegram текст сразу после открывающих тройных бэктиков трактуется как указатель языка code-блока и не отображается. Из-за этого пропадала первая строка уведомления — [время] METHOD host/URI, то есть путь и метод запроса не были видны. Добавлен \n после фенса; тест теперь проверяет перевод строки и наличие URI в выводе. Co-Authored-By: Claude Opus 4.8 (1M context) --- notifier.go | 2 +- notifier_test.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/notifier.go b/notifier.go index 693cb2e..2ab4669 100644 --- a/notifier.go +++ b/notifier.go @@ -39,7 +39,7 @@ func formatPlain(d RequestData) string { // formatMarkdown — обёртка в код-блок для Telegram/Pachca. func formatMarkdown(d RequestData) string { - return "```" + formatPlain(d) + "```" + return "```\n" + formatPlain(d) + "```" } // formatHTML — обёртка в
 с экранированием для Email.
diff --git a/notifier_test.go b/notifier_test.go
index f322223..bdad48a 100644
--- a/notifier_test.go
+++ b/notifier_test.go
@@ -25,8 +25,14 @@ func sampleData() RequestData {
 
 func TestFormatMarkdown(t *testing.T) {
 	out := formatMarkdown(sampleData())
-	if !strings.HasPrefix(out, "```") || !strings.HasSuffix(out, "```") {
-		t.Fatalf("expected ``` wrapping, got: %q", out)
+	if !strings.HasPrefix(out, "```\n") || !strings.HasSuffix(out, "```") {
+		// Перевод строки после открывающего фенса обязателен: иначе markdown
+		// в Pachca/Telegram съедает первую строку как указатель языка, и путь
+		// запроса (METHOD host/url) пропадает из уведомления.
+		t.Fatalf("expected ```\\n wrapping, got: %q", out)
+	}
+	if !strings.Contains(out, "/telegram") {
+		t.Errorf("missing request path/url: %q", out)
 	}
 	if !strings.Contains(out, "POST") || !strings.Contains(out, "1.2.3.4") {
 		t.Errorf("missing fields: %q", out)