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

kobotoolbox / kpi / 30088240074

24 Jul 2026 11:02AM UTC coverage: 81.809% (-0.008%) from 81.817%
30088240074

push

github

web-flow
refactor(map): remove leaflet-omnivore DEV-857 (#7301)

### 📣 Summary
Replaces defunct leaflet-omnivore package with more targeted
dependencies for parsing map overlay data, while also removing support
for .wkt files in this context.

### 💭 Notes
GeoJSON overlays are currently broken on main. The validation path used
fetchGetUrl, which only parses the response body when the Content-Type
is application/json. GeoJSON files are served as application/geo+json,
so the body was silently discarded, causing validation to always fail.
Switching to fetch + response.text() fixes this.

Security: Map overlay popups previously passed feature property values
directly to Leaflet's bindPopup as HTML strings. Property values from
uploaded files are now set via textContent, eliminating an XSS vector.

### 👀 Preview steps

1. Create a project with at least one geo question and make a submission
2. Go to data table and click on "Map"
3. Add the files in this archive as overlays:

[test-overlays.zip](https://github.com/user-attachments/files/30307199/test-overlays.zip)
4. Verify that overlays are properly imported, loaded and displayed
(three of the files share the same data, so you will want to toggle the
overlays on/off to see each one).
5. Try adding some invalid files from this archive:

[error-tests.zip](https://github.com/user-attachments/files/30308432/error-tests.zip)
6. Verify that errors result in a simple toast notification as before
and do not break the map or valid overlays.

9479 of 12794 branches covered (74.09%)

30702 of 37529 relevant lines covered (81.81%)

5.51 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.01
/kpi/utils/query_parser/query_parser.py


Build SHA Not Found

The commit SHA "34004118dba87176a4ddff3af58f4b95b9c65de7" was not found in your repository, so the file cannot be loaded. This may be because you posted from a local development environment, or your CI created an ephemeral commit.

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc