| 1 | from pathlib import Path |
| 2 | |
| 3 | |
| 4 | PROJECT_ROOT = Path(__file__).resolve().parents[1] |
| 5 | |
| 6 | |
| 7 | def read(*parts: str) -> str: |
| 8 | return PROJECT_ROOT.joinpath(*parts).read_text(encoding="utf-8") |
| 9 | |
| 10 | |
| 11 | def test_component_loader_deduplicates_body_assets() -> None: |
| 12 | source = read("webui", "js", "components.js") |
| 13 | |
| 14 | assert 'const componentAssetSelector = "style, script, link[rel=\'stylesheet\']";' in source |
| 15 | assert "...doc.querySelectorAll(componentAssetSelector)" in source |
| 16 | assert "...Array.from(doc.body.childNodes).filter(" in source |
| 17 | assert "(node) => !node.matches?.(componentAssetSelector)" in source |