from pathlib import Path ROOT=Path(__file__).resolve().parents[1] def test_version(): assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1" def test_assistant_avatar_removed_user_avatar_customizable(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert 'const a=role==="user"?document.createElement("div"):null' in js assert "imageFileToAvatar" in js assert "avatarInputSetting" in js assert 'userAvatar:""' in js def test_avatar_sync_allowed(): py=(ROOT/"services"/"user_state.py").read_text(encoding="utf-8") assert '"userAvatar"' in py assert "180000" in py def test_responsive_text_rules(): css=(ROOT/"static"/"css"/"app.css").read_text(encoding="utf-8") assert "overflow-wrap:anywhere" in css assert ".md table{display:block" in css assert "@media(max-width:640px)" in css def test_parallel_independent_task_mode(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert "function parseParallelTasks" in js assert "function sendParallelTasks" in js assert "Promise.all(promises)" in js assert "独立子任务 · 独立会话并行" in js assert "multiTaskAutoSetting" in js def test_dependent_tasks_stay_serial(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert "先.{0,18}(再|然后|之后)" in js