--- title: Testing layout: ../../layouts/MainLayout.astro --- # Testing Strudel uses [vitest](https://vitest.dev/) for testing, with 2 types of testing strategies: - unit tests for fine grained testing - automated snapshot tests for broader testing ## Unit Tests 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 `util.mjs`. ## Snapshot Tests Snapshot tests allow testing larger chunks of data. Strudel uses snapshot tests for: - Example Snippets: `examples.test.mjs`, using snippets under `@example` inside jsdoc comments - Example Tunes: `tunes.test.mjs`, using all patterns in `tunes.mjs` 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.