dev: add deterministic demo dataset
This commit is contained in:
1 parent
60a831950c
commit
d06ee7bcc6
5 files changed
+810
No files matched your search
@@ -142,6 +142,9 @@ def _map_content(can_manage_locations: bool = False) -> str:
|
||||
<section class="mine-map-workspace" id="mapWorkspace" hidden>
|
||||
<div class="map-main-column">
|
||||
<div id="mapLegend" class="map-legend" aria-label="Map legend"></div>
|
||||
<p id="mapPermissionNote" class="map-notice" hidden>
|
||||
Miner details require inventory access. Layout and occupancy remain visible.
|
||||
</p>
|
||||
<div id="mapNotice" class="map-notice" role="status" hidden></div>
|
||||
<div id="mapViewport" class="map-viewport-v1"
|
||||
aria-label="Room racks, shelves, and positions"></div>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import re
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
@@ -157,6 +158,31 @@ class FrontendShellTests(unittest.TestCase):
|
||||
self.assertIn(value, response.text)
|
||||
self.assertNotIn("Live layout and telemetry data are not", response.text)
|
||||
|
||||
def test_map_script_dom_contract_matches_rendered_page(self):
|
||||
self.authenticate()
|
||||
response = self.client.get("/monitoring/map")
|
||||
javascript = (STATIC_ROOT / "mine-map.js").read_text(encoding="utf-8")
|
||||
declared_ids = re.search(
|
||||
r"const ids = \[(.*?)\];",
|
||||
javascript,
|
||||
re.DOTALL,
|
||||
)
|
||||
self.assertIsNotNone(declared_ids)
|
||||
required = set(
|
||||
re.findall(
|
||||
r'"([A-Za-z][A-Za-z0-9]+)"',
|
||||
declared_ids.group(1),
|
||||
)
|
||||
)
|
||||
required.update(
|
||||
re.findall(
|
||||
r'document\.getElementById\("([^"]+)"\)',
|
||||
javascript,
|
||||
)
|
||||
)
|
||||
rendered = set(re.findall(r'\bid="([^"]+)"', response.text))
|
||||
self.assertEqual(required - rendered, set())
|
||||
|
||||
def test_data_views_include_all_request_states(self):
|
||||
self.authenticate()
|
||||
for path in ("/operations/repairs", "/assets/miners"):
|
||||
|
||||
Reference in new issue
Block a user