Check that an engine switch draws what a cold start from the share link draws

qa-switch-equals-cold-start switches engines in both directions with each
layer on deterministic fixtures, then opens the share link of the same
state in a new page on the target engine, and compares the draw ledgers
and the probe's view of the layer. It runs as 19 acceptance groups
covering all 38 layers.

State a layer keeps through a switch but the share link does not carry is
declared as sessionState (the directions route, Radio's selected station
and audio state, the wind reading, local ADS-B's and OSM Places' local
toggles and results); a test checks each declaration against what the
layer really retains, so a declaration cannot hide a regression.
This commit is contained in:
German Khokhlov committed 2026-11-10 17:08:05 +04:00
1 parent 59ff0b38a2
commit 7c5ebf4814
12 files changed
+2020

No files matched your search

+1
View File
@@ -1511,6 +1511,7 @@ export function createDirectionsLayer({
};
const directionsLayer = {
id: 'directions',
sessionState: ['route'],
name: 'Directions',
icon: '🧭',
source: 'OSM routing',
+1
View File
@@ -606,6 +606,7 @@ export function createLocalAdsbLayer({
const picks = { owner: LAYER_ID, predicate: (id) => markers.has(id) };
return {
id: LAYER_ID,
sessionState: ['enabled'],
name: LAYER_NAME,
icon: '📡',
source: LAYER_SOURCE,
+1
View File
@@ -72,6 +72,7 @@ export function createOsmPlacesLayer({
return {
id: OSM_PLACES_LAYER_ID,
sessionState: ['enabled', 'results'],
name: 'OSM Places',
icon: '⌖',
source: 'OpenStreetMap',
+1
View File
@@ -52,6 +52,7 @@ export function createRadioLayer({ services, source, rendererFactory }) {
parts.lifecycle.methods,
parts.ingestion?.methods,
{
sessionState: ['selected', 'audioState'],
radioGlobeLabel: parts.labels.radioGlobeLabel,
createRadioSelectedOverlayEntry:
parts.labels.createRadioSelectedOverlayEntry,
+1
View File
@@ -106,6 +106,7 @@ export function createWindLayer({
const unsubscribeClock = clock?.subscribe(notify);
const layer = {
id: 'wind',
sessionState: ['reading'],
name: 'Wind',
icon: '🌬',
source: 'GFS / ECMWF IFS · FORECAST',