| from pathlib import Path | |
| ROOT = Path(__file__).resolve().parents[1] | |
| def test_frontend_assets_are_externalized(): | |
| html=(ROOT/'app.html').read_text(encoding='utf-8') | |
| assert '/static/css/app.css?v=__APP_VERSION__' in html | |
| assert '/static/js/app.js?v=__APP_VERSION__' in html | |
| assert (ROOT/'static/css/app.css').stat().st_size > 10000 | |
| assert (ROOT/'static/js/app.js').stat().st_size > 50000 | |
| assert html.count('<style>') == 0 | |
| def test_backend_is_domain_split(): | |
| ui=(ROOT/'ui_server.py').read_text(encoding='utf-8') | |
| assert 'from views.admin import _render_admin_dashboard, _render_admin_user_detail' in ui | |
| assert 'from services.project_planner import _project_package_plan' in ui | |
| assert 'register_data_health_route(app, sidebar_dataset_quality, sidebar_dataset_metadata_audit)' in ui | |
| assert (ROOT/'views/admin.py').exists() | |
| assert (ROOT/'services/project_planner.py').exists() | |
| assert (ROOT/'routes/data_health.py').exists() | |
| def test_ui_server_shrank_from_v362_monolith(): | |
| # v3.6.2 was ~228 KB. P0 should make measurable progress without changing behavior. | |
| assert (ROOT/'ui_server.py').stat().st_size < 190_000 | |