fixes
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package aiprompts
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
"github.com/descrybe/descrybe-v2/apps/api/internal/company"
|
||||
)
|
||||
|
||||
var languageFmt = regexp.MustCompile(`^[a-z]{2}$`)
|
||||
|
||||
func TestProductEnhanceUpsertLanguages_neverStar(t *testing.T) {
|
||||
t.Parallel()
|
||||
cases := []struct {
|
||||
name string
|
||||
contentLangs []string
|
||||
primary string
|
||||
want []string
|
||||
}{
|
||||
{
|
||||
name: "primary_only",
|
||||
contentLangs: nil,
|
||||
primary: "sl",
|
||||
want: []string{"sl"},
|
||||
},
|
||||
{
|
||||
name: "primary_plus_content",
|
||||
contentLangs: []string{"sl", "en", "de"},
|
||||
primary: "sl",
|
||||
want: []string{"sl", "en", "de"},
|
||||
},
|
||||
{
|
||||
name: "drops_star_and_invalid",
|
||||
contentLangs: []string{"*", "sl", "xx", "", "EN"},
|
||||
primary: "*",
|
||||
want: []string{"en", "sl"},
|
||||
},
|
||||
{
|
||||
name: "dedupes_primary_in_content",
|
||||
contentLangs: []string{"sl", "sl", "en"},
|
||||
primary: "sl",
|
||||
want: []string{"sl", "en"},
|
||||
},
|
||||
{
|
||||
name: "empty_falls_back_default",
|
||||
contentLangs: []string{"*", ""},
|
||||
primary: "",
|
||||
want: []string{company.DefaultLanguage},
|
||||
},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := productEnhanceUpsertLanguages(tc.contentLangs, tc.primary)
|
||||
if len(got) != len(tc.want) {
|
||||
t.Fatalf("len=%d want %d (%v)", len(got), len(tc.want), got)
|
||||
}
|
||||
for i := range got {
|
||||
if got[i] != tc.want[i] {
|
||||
t.Fatalf("got %v want %v", got, tc.want)
|
||||
}
|
||||
if !languageFmt.MatchString(got[i]) {
|
||||
t.Fatalf("language %q fails ai_prompt_templates_language_fmt", got[i])
|
||||
}
|
||||
if got[i] == company.LangPromptAny {
|
||||
t.Fatalf("must not upsert LangPromptAny")
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user