Fix localized SEO template parsing
CI / quality (push) Waiting to run

This commit is contained in:
MOH
2026-03-07 18:54:23 +01:00
parent f259dfc6bd
commit cd6ec7fa78
2 changed files with 19 additions and 21 deletions
+3 -21
View File
@@ -110,35 +110,17 @@ export function parseSiteSettingsValue(
const siteSettings: SiteSettings = {
locales: {
ar: normalizeSiteLocaleSettings(
{
titleTemplate:
typeof parsed.titleTemplate === "string" && parsed.titleTemplate.trim()
? parsed.titleTemplate.trim()
: undefined,
...(locales.ar && typeof locales.ar === "object" ? (locales.ar as Record<string, unknown>) : {}),
},
locales.ar && typeof locales.ar === "object" ? (locales.ar as Record<string, unknown>) : {},
defaults.locales.ar.siteName,
defaults.locales.ar.siteDescription,
),
en: normalizeSiteLocaleSettings(
{
titleTemplate:
typeof parsed.titleTemplate === "string" && parsed.titleTemplate.trim()
? parsed.titleTemplate.trim()
: undefined,
...(locales.en && typeof locales.en === "object" ? (locales.en as Record<string, unknown>) : {}),
},
locales.en && typeof locales.en === "object" ? (locales.en as Record<string, unknown>) : {},
defaults.locales.en.siteName,
defaults.locales.en.siteDescription,
),
de: normalizeSiteLocaleSettings(
{
titleTemplate:
typeof parsed.titleTemplate === "string" && parsed.titleTemplate.trim()
? parsed.titleTemplate.trim()
: undefined,
...(locales.de && typeof locales.de === "object" ? (locales.de as Record<string, unknown>) : {}),
},
locales.de && typeof locales.de === "object" ? (locales.de as Record<string, unknown>) : {},
defaults.locales.de.siteName,
defaults.locales.de.siteDescription,
),
+16
View File
@@ -50,4 +50,20 @@ describe("site settings helpers", () => {
expect(settings).toEqual(buildDefaultSiteSettings("Fallback Name"));
});
it("ignores legacy top-level title template values", () => {
const settings = parseSiteSettingsValue(
JSON.stringify({
titleTemplate: "{pageTitle} | moh-sass | Legacy",
locales: {
ar: {
siteName: "اسم الموقع",
},
},
}),
"Fallback Name",
);
expect(settings.locales.ar.titleTemplate).toBe("{pageTitle} | {siteName}");
});
});