trails/packages/gpx/fixtures
Ullrich Schäfer 36c5a8beaa
test(gpx): fixture corpus + verification (groups 5–6)
Task groups 5 and 6 of gpx-parser-robustness.

Group 5 — packages/gpx/fixtures/*.gpx (synthetic, no personal data):
route-only, missing-coords, garbage-ele, timestamps-partial,
timestamps-mostly-invalid, multi-track, unicode-name,
namespaced-extensions, plus trimmed Komoot/Wahoo-style exports.
parse-node.test.ts gains a fixture table test that auto-discovers every
*.gpx from disk, asserts finite stats + per-fixture shape, and fails
loudly if a file has no EXPECTATIONS entry (the corpus is the regression
mechanism).

Group 6 — verification: GpxData shape unchanged; journal + planner
compile with no changes; gpx suite 98/98; full pnpm typecheck 13/13,
lint 13/13, test 11/11. Route-only + broken-file import behaviour is
covered by the fixtures + consumer compile; the browser leg rides e2e.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 00:30:46 +02:00
..
garbage-ele.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
komoot-export.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
missing-coords.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
multi-track.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
namespaced-extensions.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
route-only.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
timestamps-mostly-invalid.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
timestamps-partial.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
unicode-name.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00
wahoo-export.gpx test(gpx): fixture corpus + verification (groups 5–6) 2026-07-14 00:30:46 +02:00