mapbox / mapbox/vector-tile-js

Use mvt-fixtures for testing valid/invalid vector tiles?

Open
#59 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
JavaScript
Stars
405
Forks
90
PR merge metrics
No merged PRs in 30d

Description

👋 we've recently released [mvt-fixtures](https://github.com/mapbox/mvt-fixtures) as an attempt to centralize test fixtures for decoding mvt buffers. I'd love to see vector-tile-js using this library at some point in the future. Presumably mvt-fixtures doesn't contain every unit-test fixture required for this library, so I'll work on updates there to make sure there is feature parity before working on a branch in this project.

mvt-fixtures comes with a method for testing _all_ fixtures relatively quickly - `.each()` and this would allow us to run vector-tile-js through every fixture plus test whether it should decode the fixture successfully or not. [Example in the README](https://github.com/mapbox/mvt-fixtures/#javascript-usage).

It also comes with a selection of real-world tiles that can be used for benchmarks and [tests like this one](https://github.com/mapbox/vector-tile-js/blob/master/test/parse.test.js#L34-L35).

I'll plan on being point here for prototyping what this can look like, but if anyone has thoughts or concerns please feel free to raise them here!

cc @mapbox/core-tech @jfirebaugh @lbud @mollymerp @mourner @anandthakker @lucaswoj

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the mvt-fixtures README's JavaScript usage and the existing real-world tile coverage in test/parse.test.js. Review which fixtures vector-tile-js currently requires and compare them with mvt-fixtures before deciding what integration is needed. Done means the relevant valid, invalid, and real-world tile tests use the centralized fixtures without losing required coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
testing-qa
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.