WebGLPointsLayer renderFrame and renderHitDetection will now draw multiple worlds if the source and projection support wrapX. Hit detection needs additional improvement. It stops working after more than one wrap around the world. If 0 is the middle world, then the hit detection works for worlds -1, 0, and -1, but not for worlds > 2 or < -2. The example has hit detection enabled, demonstrated with a colour change on hover for the circle styles. When moving the mouse, the hit detection is unreliable and flickers on/off. This needs improvement. The webgl-points renderer test has been updated.
Rendering Tests
The rendering tests use Puppeteer to take a screenshot of a map and compare it to an expected screenshot. Each directory in the cases directory includes a single test case with the following files:
main.js- the script that sets up the map and calls the magicrender()functionexpected.png- the expected screenshot (this can be generated with the--fixflag)actual.png- the screenshot generated when running the tests (ignored by git)pass- a generated marker file that represents the last time the test passed (ignored by git)
Running the tests
To run all the rendering tests:
node test/rendering/test.js
To run a single rendering test case:
node test/rendering/test.js --match your-test-case-name
If you want to leave the test server running (and the test browser open) after running a test, use the --interactive option.
node test/rendering/test.js --match your-test-case-name --interactive
Creating a new test
To create a new test case, add a directory under cases and add a main.js to it (copied from one of the other cases). Then to generate the expected.png screenshot, run the test script with the --fix flag:
node test/rendering/test.js --match your-test-case-name --fix
Note that your main.js needs to call the magic render() function after setting up the map. This triggers a snapshot. The render() function can be called with an options object that includes a tolerance property. The tolerance is related to the ratio of mismatched pixels to the total number of pixels in the actual screenshot.
After creating a new test case, commit your main.js and expected.png files.