fix
This commit is contained in:
@@ -15,11 +15,17 @@ func TestResolveProductPromptTemplates_categoryOverridesUser(t *testing.T) {
|
||||
EnhanceUserTemplate: "company user",
|
||||
CategoryEnhancePrompt: "category user {{description}}",
|
||||
})
|
||||
if sys != "sys {{brand_voice}}" {
|
||||
t.Fatalf("system=%q", sys)
|
||||
if !strings.Contains(sys, "sys {{brand_voice}}") {
|
||||
t.Fatalf("system=%q want company system kept", sys)
|
||||
}
|
||||
if !strings.HasPrefix(user, "category user {{description}}") {
|
||||
t.Fatalf("user=%q want category override prefix", user)
|
||||
if !strings.Contains(sys, `apply it to "name", "description", and "attrs"`) {
|
||||
t.Fatalf("system=%q want category title+description+attrs overlay", sys)
|
||||
}
|
||||
if !strings.Contains(user, "category user {{description}}") {
|
||||
t.Fatalf("user=%q want category override text", user)
|
||||
}
|
||||
if !strings.Contains(user, "applies to name, description, and attrs") {
|
||||
t.Fatalf("user=%q want title+description+attrs framing", user)
|
||||
}
|
||||
if !strings.Contains(user, "{{attrs}}") {
|
||||
t.Fatalf("user=%q want injected {{attrs}}", user)
|
||||
@@ -34,8 +40,68 @@ func TestResolveProductPromptTemplates_categoryWithAttrsUnchanged(t *testing.T)
|
||||
_, user := resolveProductPromptTemplates(ProductInput{
|
||||
CategoryEnhancePrompt: "Write copy.\nAttrs: {{attrs}}\nName: {{name}}",
|
||||
})
|
||||
if user != "Write copy.\nAttrs: {{attrs}}\nName: {{name}}" {
|
||||
t.Fatalf("user=%q want unchanged when attrs present", user)
|
||||
if !strings.Contains(user, "Write copy.\nAttrs: {{attrs}}\nName: {{name}}") {
|
||||
t.Fatalf("user=%q want category text preserved when attrs present", user)
|
||||
}
|
||||
if !strings.Contains(user, "applies to name, description, and attrs") {
|
||||
t.Fatalf("user=%q want title framing on free-form overlay", user)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveProductPromptTemplates_categoryCanonicalSkipsFrame(t *testing.T) {
|
||||
t.Parallel()
|
||||
_, user := resolveProductPromptTemplates(ProductInput{
|
||||
CategoryEnhancePrompt: aiprompts.CategoryEnhanceUserTemplate,
|
||||
})
|
||||
if strings.Count(user, "applies to name, description, and attrs") != 0 ||
|
||||
strings.Count(user, "applies to name and description") != 0 {
|
||||
t.Fatalf("canonical template must not get double framing: %q", user)
|
||||
}
|
||||
if !strings.Contains(user, "Title formula") || !strings.Contains(user, `"name"`) {
|
||||
t.Fatalf("canonical template should retain name guidance: %q", user)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveProductPromptTemplates_categoryWithTitleFormula(t *testing.T) {
|
||||
t.Parallel()
|
||||
title := map[string]any{
|
||||
"separator": " ",
|
||||
"elements": []any{
|
||||
map[string]any{"type": "variable", "value": "brand"},
|
||||
map[string]any{"type": "variable", "value": "product_model"},
|
||||
},
|
||||
}
|
||||
desc := map[string]any{
|
||||
"sections": []any{
|
||||
map[string]any{"type": "p", "instructions": "Factual summary"},
|
||||
},
|
||||
}
|
||||
sys, user := resolveProductPromptTemplates(ProductInput{
|
||||
EnhanceSystemTemplate: "Retail copywriter.\n- name: short retail title\n- description: 1-2 sentences",
|
||||
CategoryEnhancePrompt: "Emphasize energy class and Slovenian retail tone.",
|
||||
TitleTemplate: title,
|
||||
DescriptionTemplate: desc,
|
||||
})
|
||||
if !strings.Contains(user, "Emphasize energy class") {
|
||||
t.Fatalf("missing category prompt: %s", user)
|
||||
}
|
||||
if !strings.Contains(user, "applies to name, description, and attrs") {
|
||||
t.Fatalf("missing category title framing: %s", user)
|
||||
}
|
||||
if !strings.Contains(user, "Title formula") || !strings.Contains(user, "attr [brand]") {
|
||||
t.Fatalf("missing title formula: %s", user)
|
||||
}
|
||||
if !strings.Contains(user, "Description formula") || !strings.Contains(user, "- p: Factual summary") {
|
||||
t.Fatalf("missing description formula: %s", user)
|
||||
}
|
||||
if !strings.Contains(sys, `When the user message includes a "Title formula"`) {
|
||||
t.Fatalf("missing title system override: %s", sys)
|
||||
}
|
||||
if !strings.Contains(sys, "Description formula") {
|
||||
t.Fatalf("missing description system override: %s", sys)
|
||||
}
|
||||
if !strings.Contains(sys, `apply it to "name", "description", and "attrs"`) {
|
||||
t.Fatalf("missing category system overlay: %s", sys)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user