mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-12 14:22:21 +00:00
docs(cyclones): tighten shared-context comments, changelog and notes
This commit is contained in:
1 parent
ea22d16c1a
commit
5e64e599e1
5 files changed
+13
-19
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { createCyclonesLayer } from '../../layers/cyclones/index.js';
|
||||
import * as context from '../../data/contextStore.js';
|
||||
|
||||
/** Wire cyclone selection into the application shared-context owner. */
|
||||
/** Wire cyclone selection to the application shared context. */
|
||||
export function createApplicationCyclones(options) {
|
||||
const browserContext = typeof window !== 'undefined' ? { context } : {};
|
||||
return createCyclonesLayer({
|
||||
|
||||
@@ -116,14 +116,12 @@ export function createCyclonesLayer({
|
||||
layerId: 'weather-cyclones',
|
||||
layerName: 'Cyclone advisories',
|
||||
source: 'NOAA NHC / CPHC',
|
||||
// Keep official storm names verbatim; layerName identifies the layer.
|
||||
label: storm.name,
|
||||
latitude: storm.position.latitude,
|
||||
longitude: storm.position.longitude,
|
||||
// At most 12 properties reach the voice summary; keep the list short.
|
||||
properties: {
|
||||
classification: storm.classification,
|
||||
// English source meaning; unknown codes stay unexpanded.
|
||||
classificationName: Object.hasOwn(
|
||||
CLASSIFICATION_NAMES,
|
||||
storm.classification,
|
||||
@@ -140,7 +138,7 @@ export function createCyclonesLayer({
|
||||
movementDirectionDegrees: storm.movement?.directionDegrees,
|
||||
movementSpeedKt: storm.movement?.speedKt,
|
||||
advisoryUrl: storm.advisoryUrl,
|
||||
// Present only while the server serves its cache with NHC unreachable.
|
||||
// Only while the proxy serves its cache because NHC is unreachable.
|
||||
staleCacheFetchedAt:
|
||||
snapshot.stale && Number.isFinite(snapshot.fetchedAt)
|
||||
? new Date(snapshot.fetchedAt).toISOString()
|
||||
|
||||
@@ -405,8 +405,7 @@ function harness(
|
||||
},
|
||||
};
|
||||
}
|
||||
// Runs a test body against the real shared-context store on a stand-in window,
|
||||
// with the voice runner reading the same store.
|
||||
// Real shared-context store on a stand-in window; the voice runner reads it.
|
||||
async function withSharedContext(t, body) {
|
||||
const previousWindow = Object.getOwnPropertyDescriptor(globalThis, 'window');
|
||||
const host = new EventTarget();
|
||||
@@ -657,8 +656,7 @@ test('cyclone clears leave another layer selection and its records alone', async
|
||||
assert.equal(store.selectedEntityId, 'flight:abc123');
|
||||
assert.equal(events.length, before);
|
||||
|
||||
// A foreign record removed without clearing its selection: a cyclone
|
||||
// feed failure must not report that selection as evicted by cyclones.
|
||||
// A cyclone feed failure does not evict a dangling foreign selection.
|
||||
store.entities.delete('flight:abc123');
|
||||
let fail = false;
|
||||
const other = open({
|
||||
|
||||
Reference in new issue
Block a user