mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 02:44:02 +00:00
fix(street-level): settle loading on pan, keep zoom 0, drop late poses
Fixes from gekh's re-review of 061d269, each with a regression test that
fails on the old code:
- A pan that drops a tile still loading now settles the loading count
(the aborted request no longer owns its key, so its `finally` never
did), and purges the previous zoom's tiles once nothing is pending.
LOADING no longer sticks on the status pill and chip.
- Zoom 0 (above 15,000 km) is a zoom: `zoom == null` instead of `!zoom`.
- A pose that arrives after a photo was closed is dropped, in the
MapillaryJS adapter and in the viewer host, so the marker and sequence
selection do not come back.
- Ground casting passes the tile's signal to the terrain request, so a
cancelled tile stops its height batch instead of holding the queue.
- The server's in-memory tile cache honours the 24 h TTL like the disk.
- The viewer's one-time resize runs for every photo, not just the first.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
061d2698f5
commit
a5e16e9470
11 files changed
+115
-6
No files matched your search
@@ -202,6 +202,24 @@ test('fetchTile serves from memory after one upstream fetch and strips the image
|
||||
}
|
||||
});
|
||||
|
||||
test('a tile held in memory past the 24 h TTL is fetched again', async (t) => {
|
||||
const tile = { layer: 'coverage', z: 9, x: 3, y: 3 };
|
||||
await withDeferredUpstream([tile], async ({ upstream, settle }) => {
|
||||
const first = fetchTile(tile);
|
||||
await settle();
|
||||
upstream[0].release();
|
||||
assert.equal((await first).source, 'upstream');
|
||||
assert.equal((await fetchTile(tile)).source, 'memory');
|
||||
const now = Date.now();
|
||||
t.mock.method(Date, 'now', () => now + 25 * 60 * 60 * 1000);
|
||||
const again = fetchTile(tile);
|
||||
await settle();
|
||||
assert.equal(upstream.length, 2, 'neither cache answers a stale tile');
|
||||
upstream[1].release();
|
||||
assert.equal((await again).source, 'upstream');
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* A deferred upstream for in-flight tests: every fetch waits until released,
|
||||
* and records whether its signal was aborted. Coordinates use z9, which the
|
||||
|
||||
Reference in new issue
Block a user