Skip to main content

Testing

SheetJS libraries have extensive test suites.

Local Tests

make test will run the NodeJS tests. By default it runs tests on files in every supported format. To test a specific file type, set FMTS to the desired file extension. Feature-specific tests are available with make test_misc.

$ make test_misc   # run core tests
$ make test # run full tests

To enable all errors, set the environment variable WTF=1:

$ make test        # run full tests
$ WTF=1 make test # enable all error messages

flow and eslint checks are available:

$ make lint        # eslint checks
$ make tslint # check TS definitions

Tested Environments

(click to show)

Browsers

  • IE 6/7/8/9/10/11 (IE 6-9 require shims)
  • Chrome 26+ (including Android 6.0+)
  • Safari 8+ (Desktop) and Safari 10+ (iOS)
  • Edge 13-18 and 79+
  • FF Latest

The automated browser tests seek to test the latest patch version of each major release of Chromium ending in 0 (starting from Chrome 30).

Edge originally was an independent browser, becoming a Chromium fork in version 79. Since the new releases should be nearly identical to the Chrome counterpart, the Edge tests are run on major releases ending in 5 (starting from Edge 85).

Server Platforms

  • NodeJS 0.8, 0.10, 0.12, and every major version starting from 4
  • io.js 1/2/3
  • Bun latest
  • Deno latest

The test suite also includes tests for various time zones. Timezones can be controlled by setting the TZ environment variable:

env TZ="Asia/Kolkata" WTF=1 make test_misc

Test Files

Download the test artifacts.

Artifact Sources

Test files include derivatives of files from external sources. Files were opened in various spreadsheet software and exported to CSV and other file formats. The enclosed README.md file explains the naming conventions and file origins.

External sources typically distribute files under open source licenses. Some sources have dedicated files to the public domain.

It is assumed that external sources have proper authorization to release files under the asserted license terms. For example, if an external source releases a file under the Apache 2.0 license, it is assumed that they either generated the file directly or obtained permission from the creator.

Requests for Removal

External sources may have added files from contributors without proper consent. Users are encouraged to submit reports if files contain private information that was not properly vetted by the parties that posted the original content.

Please send an email or file an issue in the main source repository.