Strudel uses vitest for testing, with 2 types of testing strategies:
- unit tests for fine grained testing
- automated snapshot tests for broader testing
Each package has a
test folder where tests are written on a file by file basis, e.g.
util.test.mjs implements all tests for
Snapshot tests allow testing larger chunks of data. Strudel uses snapshot tests for:
- Example Snippets:
examples.test.mjs, using snippets under
@exampleinside jsdoc comments
- Example Tunes:
tunes.test.mjs, using all patterns in
The snapshot (
.snap) files contain all haps within a certain number of cycles for each tested pattern.
They allow testing for breaking changes on a larger scale.
If breaking changes are intentional, the snapshots can be updated with
npm run snapshot.
Just make sure to verify that all affected patterns behave as expected.