v0.65.0: per-airport job pools with real-time refresh — open jobs spawn per pool airport (grounded/flying/queued locations) in a fixed POOL_BANDS composition, expire on the wall clock after JOB_LIFETIME_MS even while the world is frozen, and refill taken slots after a per-band cooldown; /api/state + SSE filter open jobs to pool origins and expose expiresRealMs for the right-pane countdown
CI / build + unit + e2e (pull_request) Failing after 17m26s
CI / build + unit + e2e (pull_request) Failing after 17m26s
This commit is contained in:
+9
-6
@@ -361,14 +361,17 @@ test('hovering an open package highlights its endpoint airports', async ({ page
|
||||
}).toBe(0);
|
||||
});
|
||||
|
||||
// ISS-120 (v0.53.0): Auckland → Fua'amotu (Tonga) — both in the world dataset, and their short great
|
||||
// circle crosses ±180 EASTWARD. Before the fix the arc's wrapped samples jumped +179.x → −179.x and
|
||||
// MapLibre connected them with a chord across the whole map; now the trace is one continuous line.
|
||||
// ISS-120 (v0.53.0): Frankfurt → Fua'amotu (Tonga) — their short great circle crosses ±180 EASTWARD
|
||||
// (sampled: the raw longitude sequence jumps ~360° at the crossing, same as the original NZAA→NFTF pair).
|
||||
// Before the fix the arc's wrapped samples jumped +179.x → −179.x and MapLibre connected them with a
|
||||
// chord across the whole map; now the trace is one continuous line. v0.65.0: origin moved from NZAA to
|
||||
// EDDF — open jobs only render where a plane can take them (the pool), so the hook must create it at
|
||||
// the hub; same crossing, no relocation needed.
|
||||
test('hovering an antimeridian-crossing package draws one continuous trace, no chord across the map', async ({ page }) => {
|
||||
test.setTimeout(300_000); // self-heal can take minutes after an interrupted run
|
||||
await flyHomeViaApi(page);
|
||||
|
||||
const pkg = await createPackage(page, 'NZAA', 'NFTF');
|
||||
const pkg = await createPackage(page, HUB, 'NFTF');
|
||||
|
||||
await page.goto('/');
|
||||
await waitForAirportCount(page);
|
||||
@@ -377,10 +380,10 @@ test('hovering an antimeridian-crossing package draws one continuous trace, no c
|
||||
await expect(row, 'the hook-created package appears in the list').toBeVisible({ timeout: 15_000 });
|
||||
|
||||
// fitToAirports unwraps crossing pairs (ISS-120) so both endpoints are in-viewport.
|
||||
await fitToAirports(page, ['NZAA', 'NFTF']);
|
||||
await fitToAirports(page, [HUB, 'NFTF']);
|
||||
|
||||
await row.hover();
|
||||
await expectHoverRoute(page, 'NZAA', 'NFTF'); // endpoint check is mod-360 aware now (ISS-120)
|
||||
await expectHoverRoute(page, HUB, 'NFTF'); // endpoint check is mod-360 aware now (ISS-120)
|
||||
|
||||
// The regression itself: no rendered segment may contain a ±180 longitude jump — that was the chord.
|
||||
await expect.poll(async () => {
|
||||
|
||||
Reference in New Issue
Block a user