happy-dom
environment for the code that runs in the browser, like the preview app and the editor, and under node for the rest.
The tests of
@vuemaildev/nuxt build and start real Nuxt apps, so they take longer than the others.@vuemaildev/editor that type into the editor (*.browser.spec.ts) run in a real Chromium, through
Vitest’s browser mode and Playwright. Install that browser once before running them:
packages/editor, pnpm test:unit and pnpm test:browser run each kind on its own.
We do not strictly enforce testing coverage, but encourage it. A good rule of thumb is that if you need to simulate use
cases to check whether a specific portion of code works, you should split it into a function with a matching unit test.
After you have gone through the setup run
pnpm test inside any package. This will run the tests only once. We have two
scripts defined on our packages for testing:
pnpm test: Runs all the tests once. If you run it on the root, it will run the tests for all packages using turborepo, after building the packages they depend onpnpm test:watch: Runs all the tests and watches for changes. Vitest automatically only runs the tests that are affected by the code you’ve changed.