Measure engine coupling and run the contract suite on the real engines

scripts/report-engine-coupling.mjs counts the engine-specific code left
outside src/globe/cesium and src/globe/navara: layer renderer lines per
engine, Cesium imports, `viewer` mentions, engine-name checks, raw Navara
reads, Navara ground passes, Cesium SDK loads and ScreenSpaceEventHandler
users. engineCoupling.test.mjs fails npm test when a count grows past
scripts/engine-coupling-baseline.json, so each step towards drawing
through the globe contract can only lower them.

scripts/qa-contract-suite.mjs runs src/globe/testing/contractSuite.mjs in
headless Chrome on the Cesium and Navara of a keyless dev server, which
until now only ran on the fake engine. The page imports the suite from the
dev server, starts at a fixed view, waits for the camera to rest and lets
the pointer through the panels. Cesium passes 57 of 57 checks, Navara 64
of 67; docs/CURRENT-STATE.md names the three that fail.
This commit is contained in:
German Khokhlov committed 2026-11-07 01:08:15 +04:00
1 parent 92c8f8d9da
commit 9daa4bd2db
6 files changed
+448 -3

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
{
"metrics": {
"cesiumLayerRendererLines": 5239,
"navaraLayerRendererLines": 12331,
"cesiumImportFiles": 69,
"viewerLines": 2424,
"navaraKindChecks": 17,
"engineSniffCalls": 51,
"navaraViewsReads": 27,
"groundEffectPasses": 9,
"cesiumSdkLoads": 6,
"screenSpaceHandlerFiles": 20,
"engineNameLines": 175
},
"measuredAt": "german/navara merged with origin/main 8da8c05e, 2026-11-07"
}