unsloth/tests/studio/test_locale_root_direction_contract.py
Michael Han 300b5f9b41
Fix Studio toast close-button positioning (#7142)
* Fix Studio toast close-button positioning

* Use UTF-8 for locale regression test

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Harden toast close-button positioning

* Limit language menu height

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-07-15 07:43:40 -07:00

30 lines
1.2 KiB
Python

"""Regression guard for locale changes affecting the entire Studio layout."""
from pathlib import Path
REPO = Path(__file__).resolve().parents[2]
LOCALE_STORE = REPO / "studio/frontend/src/i18n/locale-store.ts"
MESSAGES = REPO / "studio/frontend/src/i18n/messages.ts"
SONNER = REPO / "studio/frontend/src/components/ui/sonner.tsx"
def test_locale_changes_do_not_force_document_direction():
src = LOCALE_STORE.read_text(encoding = "utf-8")
assert "document.documentElement.lang = locale" in src
assert "document.documentElement.dir" not in src, (
"locale changes must not force the root direction; html[dir] changes "
"third-party component layout, including Sonner close-button positioning"
)
def test_locale_metadata_does_not_advertise_unused_layout_direction():
src = MESSAGES.read_text(encoding = "utf-8")
locales_block = src[src.index("export const LOCALES") : src.index("export type Locale")]
assert "dir:" not in locales_block
def test_toast_close_position_does_not_inherit_root_direction():
src = SONNER.read_text(encoding = "utf-8")
assert '"--toast-close-button-start": "auto"' in src
assert '"--toast-close-button-start": "unset"' not in src