diff --git a/internal/modules/formatter/service.go b/internal/modules/formatter/service.go index 842922f..4c75f8e 100644 --- a/internal/modules/formatter/service.go +++ b/internal/modules/formatter/service.go @@ -24,6 +24,9 @@ func (s *service) FormatText(text string) string { var res strings.Builder for i, line := range lines { l := strings.TrimSpace(line) + if strings.HasPrefix(l, "--") { + l = strings.Replace(l, "--", "—", 1) + } if i == 0 && strings.HasPrefix(l, "—") { res.WriteString(" ") } diff --git a/internal/modules/formatter/service_test.go b/internal/modules/formatter/service_test.go new file mode 100644 index 0000000..c474684 --- /dev/null +++ b/internal/modules/formatter/service_test.go @@ -0,0 +1,41 @@ +package formatter + +import "testing" + +func Test_service_FormatText(t *testing.T) { + tests := []struct { + name string + text string + want string + }{ + { + name: "Простой текст", + text: "Привет", + want: "Привет", + }, + { + name: "Текст с двумя абзацами", + text: "Привет\nМир", + want: "Привет\n Мир", + }, + { + name: "Прямая речь", + text: "— Привет", + want: " — Привет", + }, + { + name: "Прямая речь через 2 минуса", + text: "-- Привет", + want: " — Привет", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var s service + got := s.FormatText(tt.text) + if got != tt.want { + t.Errorf("FormatText() = %v, want %v", got, tt.want) + } + }) + } +}