Testing
SheetJS libraries have extensive test suites.
Local Tests​
- NodeJS
- Browser
- Bun
- Deno
- ExtendScript
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
The core in-browser tests are available at tests/index.html within this repo.
Start a local server and navigate to that directory to run the tests.
make ctestserv will start a server on port 8000.
make ctest will generate the browser fixtures. To add more files, edit the
tests/fixtures.lst file and add the paths.
make test-bun will run the full Bun test suite and make test-bun_misc
will run the smaller feature-specific tests.
make test-deno will run the full Deno test suite and make test-deno_misc
will run the smaller feature-specific tests.
make dist will build xlsx.extendscript.js.
The script estk.jsx at the root of the project is configured to run in
ExtendScript Toolkit. It will read sheetjs.xlsx and attempt to write test
files in a number of file formats.
ExtendScript Toolkit 3.5 is available as a standalone download for Windows.
Tested Environments​
(click to show)
Test Files​
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.