Files
site/WESP_REL/tests/test_analytics_ui_contract.py
2026-07-17 12:57:18 +03:00

37 lines
1.6 KiB
Python

"""UI-контракт analytics на /reports и /feed_consumption."""
from __future__ import annotations
import unittest
from tests.helpers.zootech_test_helpers import STATIC
class AnalyticsUiContractTests(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.reports_html = (STATIC / "reports.html").read_text(encoding="utf-8")
cls.consumption_html = (STATIC / "consumption.html").read_text(encoding="utf-8")
cls.copy_js = (STATIC / "js" / "pages" / "analytics-copy.js").read_text(encoding="utf-8")
def test_reports_has_analytics_tabs(self) -> None:
self.assertIn('data-reports-view-tab="summary"', self.reports_html)
self.assertIn('data-reports-view-tab="comparison"', self.reports_html)
self.assertIn('data-reports-view-tab="journal"', self.reports_html)
self.assertIn('data-journal-view-tab="alerts"', self.reports_html)
self.assertIn("analytics-summary.js", self.reports_html)
self.assertIn("analytics-plan-fact.js", self.reports_html)
def test_consumption_has_stock_forecast(self) -> None:
self.assertIn("stockForecastBanner", self.consumption_html)
self.assertIn("stock-forecast.js", self.consumption_html)
self.assertIn("data-stock-days-adjusted", self.consumption_html)
def test_copy_uses_zootech_labels(self) -> None:
self.assertIn("Перерасход", self.copy_js)
self.assertIn("Недогруз", self.copy_js)
self.assertIn("По рецепту", self.copy_js)
if __name__ == "__main__":
unittest.main()