Validation: Fix map directions link opening in-app instead of native Apple Maps (#305)
Verdict: PASS
Ticket
ldraney/landscaping-assistant#305 — Fix map directions link opening in-app instead of native Apple Maps. Merged via PR #319.
Environment
Production cluster, namespace
landscaping-assistant, URL: https://landscaping-assistant.appTiers Executed
Tier 1 (CI tests) + Tier 3 (prod deployment verification). Labels:
type:bug, arch:rails-app, arch:ios.Checks
| # | Criterion | How Verified | Result | Evidence |
|---|---|---|---|---|
| 1 | Tapping 'Directions' on iOS opens Apple Maps natively with correct location | Code review: <code>data: { turbo: false }</code> added to both Directions links in <code>show.html.erb</code> (lines 32, 58). Prevents turbo-ios from intercepting the link. Pattern matches established convention used by login, logout, and delete account links. | PASS | Diff: <code>data: { turbo: false }</code> added to both <code>link_to "Directions"</code> calls. Cannot verify on actual iOS device from this environment. |
| 2 | Link still works on web (opens Apple Maps in a new tab) | Code review: <code>target: "_blank"</code> and <code>rel: "noopener"</code> preserved. <code>data-turbo="false"</code> does not affect standard browser behavior for external links. | PASS | HTML attributes verified in source at lines 32 and 58 of <code>show.html.erb</code> |
| 3 | No regression on other navigation in the app | CI pipeline #839 passed all steps (clone, database, bundle-install, lint, test, build-and-push). Only 2 lines changed in 1 file. No model, controller, or route changes. | PASS | Woodpecker pipeline #839: all 6 steps success |
| 4 | Pipeline green | Woodpecker pipeline #839 (push to main) — all steps succeeded | PASS | Pipeline #839 status: success |
| 5 | Deployment live with correct image | <code>kubectl get pods</code> — pod running with image tag <code>a0baf9ca04aaa3fea2d5b259a9b325198c9abb76</code> matching merge commit | PASS | Pod: <code>landscaping-assistant-7d5669d55d-575pl</code>, 1/1 Running, 0 restarts, image tag matches commit <code>a0baf9c</code> |
| 6 | Health endpoint responds | <code>curl https://landscaping-assistant.app/up</code> returns 200 | PASS | HTTP 200 |
Regression Check
- Only
app/views/properties/show.html.erbmodified (2 lines changed, 2 insertions, 2 deletions) - Change is additive — adds one HTML data attribute per link. Cannot break existing behavior.
data: { turbo: false }follows the established pattern already used insessions/new.html.erb(login),profile/index.html.erb(logout, delete account)- CI full test suite passed (pipeline #839, test step exit code 0)
- Root URL returns 302 (expected auth redirect) — app is responsive
Limitations
- Could not log into production web app for visual browser verification — test user
lucas-adminrejected by Keycloak ("Invalid username or password"). Test credentials may have been rotated. - iOS-native behavior (opening Apple Maps) cannot be verified from a desktop environment. Requires physical iOS device or simulator. The
data-turbo="false"attribute is the standard turbo-ios convention for external link handling.
Discovered Issues
- Test user credentials (
lucas-admin/Test1234!) appear invalid against production Keycloak. Credentials may need to be re-provisioned or documented with current values.