diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-21 10:48:03 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-21 10:48:03 +0300 |
| commit | 9349c8c2b49aeee7c99567ac62a1bc388b2ede6a (patch) | |
| tree | 1017a9ee584d8c5ce3e3f580e176476f3a38da9d | |
| parent | 138695208e06a733d6b27673338fd3ca8de7fe62 (diff) | |
test o7: strengthen utf8 regression coverage
| -rw-r--r-- | internal/comic/comic_test.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/comic/comic_test.go b/internal/comic/comic_test.go index 0acccb0..a4c50f2 100644 --- a/internal/comic/comic_test.go +++ b/internal/comic/comic_test.go @@ -59,7 +59,7 @@ func TestBuildPanelLayoutUsesFallbackExcerpt(t *testing.T) { func TestSplitIntoSectionsUsesRuneBoundaries(t *testing.T) { t.Parallel() - text := strings.Repeat("Български текст за проверка на разделянето. ", 80) + text := strings.Repeat("a", 99) + "б" + strings.Repeat("c", 300) sections := splitIntoSections(text, 4) if len(sections) != 4 { t.Fatalf("splitIntoSections() sections = %d, want 4", len(sections)) @@ -69,12 +69,15 @@ func TestSplitIntoSectionsUsesRuneBoundaries(t *testing.T) { t.Fatalf("splitIntoSections() section %d is not valid UTF-8: %q", i, section) } } + if !strings.Contains(sections[0], "б") { + t.Fatalf("splitIntoSections() first section = %q, want mixed-width rune preserved", sections[0]) + } } func TestBuildPanelLayoutTruncatesCyrillicOnRuneBoundaries(t *testing.T) { t.Parallel() - text := strings.Repeat("абвгдежзийклмно", 70) + text := strings.Repeat("a", 899) + "б" + strings.Repeat("c", 100) got := buildPanelLayout(text, nil, 2) if !utf8.ValidString(got) { t.Fatalf("buildPanelLayout() returned invalid UTF-8: %q", got) @@ -82,6 +85,9 @@ func TestBuildPanelLayoutTruncatesCyrillicOnRuneBoundaries(t *testing.T) { if !strings.Contains(got, "…") { t.Fatalf("buildPanelLayout() = %q, want truncation ellipsis", got) } + if !strings.Contains(got, "б") { + t.Fatalf("buildPanelLayout() = %q, want mixed-width rune preserved", got) + } } func TestParseGenerateResultUsesConfiguredDimensions(t *testing.T) { |
