fix
This commit is contained in:
@@ -29,7 +29,8 @@ func TestCategoryUniqueIDFromAny(t *testing.T) {
|
||||
{map[string]any{"category_unique_id": 48}, "48"},
|
||||
{map[string]any{"#text": "120"}, "120"},
|
||||
{[]any{map[string]any{"unique_id": "7"}}, "7"},
|
||||
{map[string]any{"name": "OnlyName"}, ""},
|
||||
// Nested name-only is a candidate token (resolved to unique_id later).
|
||||
{map[string]any{"name": "OnlyName"}, "OnlyName"},
|
||||
}
|
||||
for i, tc := range cases {
|
||||
if got := categoryUniqueIDFromAny(tc.in); got != tc.want {
|
||||
@@ -139,6 +140,60 @@ func TestFilterCategoryIfInvalid(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCoerceCategoryToCompanyUniqueID_nameToUID(t *testing.T) {
|
||||
t.Parallel()
|
||||
names := map[string]string{"50": "Štedilniki", "28": "TV mounts"}
|
||||
valid := map[string]struct{}{"50": {}, "28": {}}
|
||||
|
||||
out := StepResult{Category: "Štedilniki"}
|
||||
coerceCategoryToCompanyUniqueID(&out, names, valid)
|
||||
if out.Category != "50" {
|
||||
t.Fatalf("name coerce: Category=%q want 50", out.Category)
|
||||
}
|
||||
filterCategoryIfInvalid(&out, valid)
|
||||
if out.Category != "50" {
|
||||
t.Fatalf("after filter: Category=%q want 50", out.Category)
|
||||
}
|
||||
|
||||
// Case-insensitive name match.
|
||||
out = StepResult{Category: "tv mounts"}
|
||||
coerceCategoryToCompanyUniqueID(&out, names, valid)
|
||||
if out.Category != "28" {
|
||||
t.Fatalf("case-insensitive coerce: Category=%q want 28", out.Category)
|
||||
}
|
||||
|
||||
// Already a unique_id — unchanged.
|
||||
out = StepResult{Category: "50"}
|
||||
coerceCategoryToCompanyUniqueID(&out, names, valid)
|
||||
if out.Category != "50" {
|
||||
t.Fatalf("uid passthrough: Category=%q", out.Category)
|
||||
}
|
||||
|
||||
// Unknown token — left for filter to clear.
|
||||
out = StepResult{Category: "not-a-category"}
|
||||
coerceCategoryToCompanyUniqueID(&out, names, valid)
|
||||
if out.Category != "not-a-category" {
|
||||
t.Fatalf("unknown should stay until filter: %q", out.Category)
|
||||
}
|
||||
filterCategoryIfInvalid(&out, valid)
|
||||
if out.Category != "" {
|
||||
t.Fatalf("unknown should clear: %q", out.Category)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCategoryUniqueIDFromAny_nestedNameOnly(t *testing.T) {
|
||||
t.Parallel()
|
||||
got := categoryUniqueIDFromAny(map[string]any{"name": "Štedilniki"})
|
||||
if got != "Štedilniki" {
|
||||
t.Fatalf("got %q want Štedilniki", got)
|
||||
}
|
||||
// unique_id still wins over name.
|
||||
got = categoryUniqueIDFromAny(map[string]any{"unique_id": "50", "name": "Štedilniki"})
|
||||
if got != "50" {
|
||||
t.Fatalf("got %q want 50", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadV1ProcessJobItems_resolvesCategoryName(t *testing.T) {
|
||||
dsn := os.Getenv("DATABASE_URL")
|
||||
if dsn == "" {
|
||||
|
||||
Reference in New Issue
Block a user