summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/comic/comic_test.go25
-rw-r--r--internal/comic/generator.go5
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))
}
}