AUTH-3: Ensure rownative.icu account linking is clearly exposed RownativeRouteImport is already rendered for authenticated users inside !isGuestMode. With GUEST-1 removing the isGuestMode flag, ensure the component is unconditionally rendered for all users (or guarded only on isAuthenticated). The link flow UI ("Link rownative account" → "Complete linking" → "Unlink") must be visible and operable. Verify that pop-up blocker guidance is shown when the browser blocks the OAuth window.
AUTH-4: Ensure rownative.icu route search and pull is functional Verify the full pull flow: entering a route ID or URL, clicking "Pull route KML", and having the imported route appear in the routes list. The "Optional route id or URL" input should accept both numeric IDs and full https://rownative.icu/… URLs. When a KML contains multiple placemark tracks the candidate-selection UI must appear and allow the user to choose one.
AUTH-5: Verify KML route loading end-to-end Confirm (via existing or new unit tests) that routeService.importRouteFromKML correctly handles:
A single-track KML → produces one WaterRoute directly
A multi-track KML → returns status: 'selectionRequired' with a non-empty candidates array
Malformed or empty KML → returns status: 'error' with a readable message Ensure the route coordinates are correctly projected so the Leaflet map and 3D scene display the imported route without visual artefacts.
AUTH-3: Ensure rownative.icu account linking is clearly exposed RownativeRouteImport is already rendered for authenticated users inside !isGuestMode. With GUEST-1 removing the isGuestMode flag, ensure the component is unconditionally rendered for all users (or guarded only on isAuthenticated). The link flow UI ("Link rownative account" → "Complete linking" → "Unlink") must be visible and operable. Verify that pop-up blocker guidance is shown when the browser blocks the OAuth window.
AUTH-4: Ensure rownative.icu route search and pull is functional Verify the full pull flow: entering a route ID or URL, clicking "Pull route KML", and having the imported route appear in the routes list. The "Optional route id or URL" input should accept both numeric IDs and full https://rownative.icu/… URLs. When a KML contains multiple placemark tracks the candidate-selection UI must appear and allow the user to choose one.
AUTH-5: Verify KML route loading end-to-end Confirm (via existing or new unit tests) that routeService.importRouteFromKML correctly handles:
A single-track KML → produces one WaterRoute directly
A multi-track KML → returns status: 'selectionRequired' with a non-empty candidates array
Malformed or empty KML → returns status: 'error' with a readable message Ensure the route coordinates are correctly projected so the Leaflet map and 3D scene display the imported route without visual artefacts.