• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Freegle / Iznik / 5285
70%
master: 70%

Build:
Build:
LAST BUILD BRANCH: feature/eee-identification
DEFAULT BRANCH: master
Ran 22 Apr 2026 10:28AM UTC
Jobs 2
Files 690
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Apr 2026 09:06AM UTC coverage: 70.077% (-1.5%) from 71.59%
5285

Pull #226

circleci

edwh
fix(sentry): guard Leaflet Tooltip._updatePosition against null _map (NUXT3-D7B)

Sentry issue NUXT3-D7B (7387861402, 83 events / 21 users, last seen
2026-04-22) + duplicate 7375663927 (combined ~124 events): TypeError
"Cannot read properties of null (reading 'latLngToLayerPoint')" from
Leaflet's Tooltip._updatePosition in leaflet-src.esm.

Root cause: Leaflet's overlay classes (Tooltip, Popup, DivOverlay) call
`this._map.latLngToLayerPoint(...)` inside _updatePosition without
checking that _map is still bound. During Vue navigation/unmount, a
debounced/rAF-scheduled update tick can fire after map.remove() has
nulled _map, crashing with the above message.

Fix: prevent the error at source with a monkey-patch shim that null-checks
_map before delegating to the original _updatePosition.

- plugins/leafletTooltipGuard.client.js — imports leaflet-src.esm on
  client boot and wraps _updatePosition on Tooltip, Popup and DivOverlay
  prototypes. Idempotent (guarded by a marker symbol).
- tests/unit/plugins/leafletTooltipGuard.spec.js — covers: null _map,
  undefined _map, live _map path, Popup/DivOverlay, idempotency,
  missing prototypes, null `this`.

Belt-and-braces Sentry suppression so residual events from cached
bundles don't pollute Sentry:
- composables/useSuppressException.js — extended to match
  'latLngToLayerPoint' in message/stack and '_updatePosition' in stack.
  Previously only 'leaflet' was checked, which may not survive Vite
  minification in production stacks.
- plugins/sentry.client.ts — added 'latLngToLayerPoint' to ignoreErrors.
- tests/unit/composables/useSuppressException.spec.js — two new tests for
  the minified-stack Tooltip crash (Chrome and Firefox phrasings).

Same pattern as prior third-party/framework null dereferences: NUXT3-D2H
(1c7fdf614, 4d99e72d1) and NUXT3-D45 (319033dbe).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pull Request #226: fix(sentry): guard Leaflet Tooltip._updatePosition against null _map (NUXT3-D7B)

13329 of 20304 branches covered (65.65%)

Branch coverage included in aggregate %.

7 of 9 new or added lines in 2 files covered. (77.78%)

19 existing lines in 6 files now uncovered.

62046 of 87256 relevant lines covered (71.11%)

14.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
55.15
0.0% iznik-nuxt3/stores/auth.js

Coverage Regressions

Lines Coverage ∆ File
8
30.82
-5.48% iznik-nuxt3/pages/browse/[[term]].vue
4
70.59
12.25% iznik-nuxt3/app.vue
4
85.0
14.94% iznik-nuxt3/layouts/default.vue
1
45.97
-1.82% iznik-nuxt3/components/ChatFooter.vue
1
96.77
-3.23% iznik-nuxt3/components/OurToggle.vue
1
87.72
39.64% iznik-nuxt3/pages/index.vue
Jobs
ID Job ID Ran Files Coverage
5285 vitest - 5285 22 Apr 2026 10:28AM UTC 685
64.56
CircleCI Job 5285
5285 playwright - 5285 22 Apr 2026 10:28AM UTC 229
45.37
CircleCI Job 5285
Source Files on build 5285
  • Tree
  • List 690
  • Changed 23
  • Source Changed 0
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • CircleCI Build #5285
  • Pull Request #226
  • PR Base - master (#5281)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc