50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
def test_language_lifecycle_has_a_dedicated_admin_section() -> None:
|
|
module_source = (ROOT / "webui/src/module.ts").read_text(encoding="utf-8")
|
|
panel_source = (
|
|
ROOT / "webui/src/features/admin/LanguagePackagesPanel.tsx"
|
|
).read_text(encoding="utf-8")
|
|
general_source = (
|
|
ROOT / "webui/src/features/admin/SystemSettingsPanel.tsx"
|
|
).read_text(encoding="utf-8")
|
|
|
|
assert 'id: "system-language-packages"' in module_source
|
|
assert 'surfaceId: "admin.section.system-language-packages"' in module_source
|
|
assert "data-language-package-lifecycle" in panel_source
|
|
assert "module.version" in panel_source
|
|
assert "module.translations?.[language.code]" in panel_source
|
|
assert "uninstallPackage" in panel_source
|
|
assert "setPackageActive" in panel_source
|
|
assert "default_locale" in panel_source
|
|
assert "language_packages" not in general_source
|
|
assert "available_languages:" not in general_source
|
|
|
|
|
|
def test_language_lifecycle_names_every_required_state() -> None:
|
|
source = (
|
|
ROOT / "webui/src/features/admin/LanguagePackagesPanel.tsx"
|
|
).read_text(encoding="utf-8")
|
|
translations = (
|
|
ROOT / "webui/src/i18n/generatedTranslations.ts"
|
|
).read_text(encoding="utf-8")
|
|
|
|
for marker in (
|
|
"installed.7bb4405c",
|
|
"available.7c8f1005",
|
|
"active.a733b809",
|
|
"inactive.09af574c",
|
|
"incompatible.lp001",
|
|
"uninstallable.lp001",
|
|
):
|
|
assert marker in source
|
|
for locale_marker in ('"en": {', '"de": {'):
|
|
assert locale_marker in translations
|
|
assert translations.count("language_package_administration.lp001") == 2
|