diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-21 10:34:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-21 10:34:35 +0300 |
| commit | 6165b2689dc139a410c3c8aeee0d0e8841d7b0ad (patch) | |
| tree | 00d25f0a0627789767b9ac1a335bc8ade5299507 /internal/comic | |
| parent | 31d2eb6d4c511aa98a161ce4e07052db4ecd8fe6 (diff) | |
Fix n7 validation labels past Z
Diffstat (limited to 'internal/comic')
| -rw-r--r-- | internal/comic/comic_test.go | 25 | ||||
| -rw-r--r-- | internal/comic/generator.go | 5 |
2 files changed, 28 insertions, 2 deletions
diff --git a/internal/comic/comic_test.go b/internal/comic/comic_test.go index be4ae6c..020fba5 100644 --- a/internal/comic/comic_test.go +++ b/internal/comic/comic_test.go @@ -111,6 +111,31 @@ func TestPanelLabelSupportsMultiLetterSequence(t *testing.T) { } } +func TestValidateGeneratedResultUsesExcelStylePanelLabels(t *testing.T) { + t.Parallel() + + page := make([]string, 27) + for i := range page { + page[i] = "а" + } + page[26] = "latin" + + err := validateGeneratedResult(GenerateResult{ + StoryText: "история", + Bible: "библия", + Title: "Заглавие", + PanelScript: [][]string{ + page, + }, + }, "Cyrillic") + if err == nil { + t.Fatal("validateGeneratedResult() error = nil, want panel label failure") + } + if !strings.Contains(err.Error(), "panel script P1-AA") { + t.Fatalf("validateGeneratedResult() error = %v, want Excel-style panel label", err) + } +} + func TestComicOutputDirDoesNotDuplicateComicsSegment(t *testing.T) { t.Parallel() diff --git a/internal/comic/generator.go b/internal/comic/generator.go index 8a13c0d..644acf6 100644 --- a/internal/comic/generator.go +++ b/internal/comic/generator.go @@ -192,10 +192,11 @@ func validateGeneratedResult(result GenerateResult, script string) error { } for pageIdx, page := range result.PanelScript { for panelIdx, panel := range page { - if err := validateTextScript(fmt.Sprintf("panel script P%d-%c", pageIdx+1, 'A'+panelIdx), panel, script); err != nil { + label := fmt.Sprintf("panel script P%d-%s", pageIdx+1, panelLabel(panelIdx)) + if err := validateTextScript(label, panel, script); err != nil { return fmt.Errorf("%w (panel=%q)", err, compactTextSnippet(panel)) } - if err := validateNoPromptLeakage(fmt.Sprintf("panel script P%d-%c", pageIdx+1, 'A'+panelIdx), panel); err != nil { + if err := validateNoPromptLeakage(label, panel); err != nil { return fmt.Errorf("%w (panel=%q)", err, compactTextSnippet(panel)) } } |
