refactor(street-level): drop hover, legend and byte-budget cache; flatten the provider directory

- No pointer cursor over coverage lines (no other layer has one); a click
  test replaces the hover tests.
- No legend: one source, one colour.
- The on-globe credit lives in index.js; credits.js is gone.
- Billboard glyphs are SVG data URLs with the same geometry, so tests need
  no canvas stub.
- The tile cache keeps the 120 most recently used tiles, same 24 h TTL,
  instead of a byte budget; listTileLayers was test-only.
- providers/mapillary/ is flattened into the layer and its policy merged
  into one policy.js; the source's method list is a literal in the catalog.
- One fakeCesiumViewer for the layer tests.
- The fixture gate keeps the steps the unit tests do not cover: coverage and
  credit, a rejected key, line -> cone -> photo, close, a keyless page.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Fable 5.1 committed 2026-10-08 19:17:45 +04:00
1 parent 34d43c7e3f
commit e214129e45
41 files changed
+335 -909

No files matched your search

+1 -1
View File
@@ -3063,7 +3063,7 @@ so the whole photo fits.
Browser gates: `npm run qa:street-level -- --url <server>` runs against real
Mapillary; `npm run qa:street-level:fixtures` answers every Mapillary request
from fixtures (`providers/mapillary/coverageFixture.mjs`,
from fixtures (`src/layers/streetLevel/coverageFixture.mjs`,
`scripts/fixtures/street-level/`), but its server (default `:4173`) still needs
some `MAPILLARY_CLIENT_TOKEN`. CI runs it `--strict` against `vite preview`.