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 rendering/test.js
To run a single rendering test case:
node rendering/test.js --match your-test-case-name
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 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.