feat: v0.2.7 — drop small_airport rows; map shows the 1045 bigger airports
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v0.2.7 — 2026-09-16 23:39
|
||||||
|
- `data/airports_eu.csv`: removed all 6400 `small_airport` rows from the OurAirports EU export — the map now shows only the 1045 bigger airports (260 large + 731 medium + 54 seaplane_base); `/api/airports` and the circle layer pick it up with no code changes
|
||||||
|
- `e2e/map.spec.ts`: marker-click test repointed from EKRN Bornholm Airport (a small_airport, now removed) to ESSV Visby Airport on Gotland — its nearest remaining airport is Stockholm Skavsta across the Baltic Sea (~59 px away at the initial zoom), so its marker cannot be overlapped by a neighbouring circle
|
||||||
|
- Verified: unit suite 12/12; e2e suite 3/3 green against the rebuilt compose instance (`/api/airports` serves 1045 features)
|
||||||
|
|
||||||
## v0.2.6 — 2026-09-16 22:41
|
## v0.2.6 — 2026-09-16 22:41
|
||||||
- `Dockerfile`: install stages switched from npm to bun (`oven/bun:1.4.2-alpine`, `bun install --frozen-lockfile`); `package-lock.json` replaced by `bun.lock`; no BuildKit `type=cache` mounts — they don't persist across builds on this daemon, and bun install is fast enough (~3 s cold) that cross-build caching isn't worth it
|
- `Dockerfile`: install stages switched from npm to bun (`oven/bun:1.4.2-alpine`, `bun install --frozen-lockfile`); `package-lock.json` replaced by `bun.lock`; no BuildKit `type=cache` mounts — they don't persist across builds on this daemon, and bun install is fast enough (~3 s cold) that cross-build caching isn't worth it
|
||||||
- `Dockerfile`: new `prod-deps` stage (`bun install --production`) so the runtime image carries prod-only `node_modules` — devDeps (typescript, vitest, @types) are no longer shipped; build and runtime stages otherwise unchanged (still node:22-alpine, full `.next`, no standalone output)
|
- `Dockerfile`: new `prod-deps` stage (`bun install --production`) so the runtime image carries prod-only `node_modules` — devDeps (typescript, vitest, @types) are no longer shipped; build and runtime stages otherwise unchanged (still node:22-alpine, full `.next`, no standalone output)
|
||||||
|
|||||||
+1046
-7446
File diff suppressed because it is too large
Load Diff
+8
-6
@@ -42,12 +42,14 @@ test('clicking an airport marker opens a popup with name and ICAO', async ({ pag
|
|||||||
{ timeout: 15_000 },
|
{ timeout: 15_000 },
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
|
|
||||||
// Project EKRN (Bornholm) to screen space via the dev hook, then click it.
|
// Project ESSV (Visby) to screen space via the dev hook, then click it.
|
||||||
// Bornholm is used because its nearest other airport is ~0.8° away (~19 px at the
|
// Visby (Gotland) is used because its nearest remaining airport after the
|
||||||
// initial zoom), so its marker cannot be overlapped by a neighbouring circle.
|
// small_airport rows were dropped is Stockholm Skavsta across the Baltic Sea,
|
||||||
|
// ~59 px away at the initial zoom, so its marker cannot be overlapped by a
|
||||||
|
// neighbouring circle.
|
||||||
const pt = await page.evaluate(() => {
|
const pt = await page.evaluate(() => {
|
||||||
const map = (window as any).__flightMap;
|
const map = (window as any).__flightMap;
|
||||||
const p = map.project([14.7596, 55.063301]);
|
const p = map.project([18.346201, 57.6628]);
|
||||||
const rect = map.getContainer().getBoundingClientRect();
|
const rect = map.getContainer().getBoundingClientRect();
|
||||||
return { x: rect.left + p.x, y: rect.top + p.y };
|
return { x: rect.left + p.x, y: rect.top + p.y };
|
||||||
});
|
});
|
||||||
@@ -55,8 +57,8 @@ test('clicking an airport marker opens a popup with name and ICAO', async ({ pag
|
|||||||
|
|
||||||
const popup = page.getByTestId('airport-popup');
|
const popup = page.getByTestId('airport-popup');
|
||||||
await expect(popup).toBeVisible();
|
await expect(popup).toBeVisible();
|
||||||
await expect(popup).toContainText('Bornholm Airport');
|
await expect(popup).toContainText('Visby Airport');
|
||||||
await expect(popup).toContainText('EKRN');
|
await expect(popup).toContainText('ESSV');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('wheel zoom is clamped between min and max zoom', async ({ page }) => {
|
test('wheel zoom is clamped between min and max zoom', async ({ page }) => {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flight-ops",
|
"name": "flight-ops",
|
||||||
"version": "0.2.6",
|
"version": "0.2.7",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev -p 3000",
|
"dev": "next dev -p 3000",
|
||||||
|
|||||||
Reference in New Issue
Block a user