These tests are written for Mocha using the exports interface.
The parse()
tests are run by comparing the output of JSON5.parse()
with
that of the native JSON.parse()
and ES5's eval()
in strict mode. The test
cases' file extension signals the expected behavior:
Valid JSON should remain valid JSON5. These cases have a
.json
extension and are tested viaJSON.parse()
.JSON5's new features should remain valid ES5. These cases have a
.json5
extension are tested viaeval()
.Valid ES5 that's explicitly disallowed by JSON5 is also invalid JSON. These cases have a
.js
extension and are expected to fail.Invalid ES5 should remain invalid JSON5. These cases have a
.txt
extension and are expected to fail.
This should cover all our bases. Most of the cases are unit tests for each supported data type, but aggregate test cases are welcome, too.