36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""Port of WESP test_zootech_k_hub_ui_contract for orchestrator public/wesp copy."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[2] / "web" / "public" / "static"
|
|
|
|
ZOOTECH_PAGES = (
|
|
"recipes.html",
|
|
"reports.html",
|
|
"components.html",
|
|
"feed_dispensers.html",
|
|
"consumption.html",
|
|
)
|
|
|
|
|
|
def test_zootech_pages_include_k_hub_assets():
|
|
for page in ZOOTECH_PAGES:
|
|
html = (PROJECT_ROOT / page).read_text(encoding="utf-8")
|
|
assert "wesp-zootech-k-hub.css" in html, page
|
|
assert "daily-plan-panel.js" in html, page
|
|
assert "wesp-zootech-notification-center.js" in html, page
|
|
|
|
|
|
def test_orchestrator_boot_present():
|
|
boot = (PROJECT_ROOT / "js" / "wesp-orchestrator-boot.js").read_text(encoding="utf-8")
|
|
assert "WespOrchestratorBoot" in boot
|
|
assert "enterprise_id" in boot
|
|
|
|
|
|
def test_multiserver_panel_uses_sync_api():
|
|
js = (PROJECT_ROOT / "js" / "pages" / "multiserver-panel.js").read_text(encoding="utf-8")
|
|
assert "/api/v1/sync/conflicts" in js
|
|
assert "resolve" in js
|