import pathlib from services.unified_query import plan_unified_query ROOT=pathlib.Path(__file__).resolve().parents[1] def test_version_390(): assert (ROOT/"VERSION").read_text(encoding="utf-8").strip()=="4.6.1" def test_joint_squid_environment_plan(): p=plan_unified_query("查询 2002 年 8 月西北太平洋柔鱼记录,并匹配 SST、SSH、CHL") assert p["intent"]=="joint_ocean_fisheries" assert "ocean" in p["domains"] assert "squid" in p["domains"] assert set(("sst","ssh","chl")).issubset(set(p["variables"])) assert p["date_range"]["start"].startswith("2002-08") def test_tuna_only_plan(): p=plan_unified_query("查询 WCPFC 金枪鱼 CPUE") assert "tuna" in p["domains"] assert "squid" not in p["domains"] def test_ocean_only_eddy_plan(): p=plan_unified_query("研究太平洋中尺度涡旋和 SSH") assert p["intent"]=="ocean_query" assert p["domains"]==["ocean"] def test_endpoint_registered_in_source(): route=(ROOT/"routes"/"unified_query.py").read_text(encoding="utf-8") ui=(ROOT/"ui_server.py").read_text(encoding="utf-8") assert '"/api/query/preview"' in route assert "register_unified_query_routes(app, globals())" in ui def test_frontend_has_unified_query(): js=(ROOT/"static"/"js"/"app.js").read_text(encoding="utf-8") assert "统一智能查询" in js assert "统一智能查询 · P1" not in js assert "runUnifiedQueryPreview" in js assert "/api/query/preview" in js