Make a change

Testing

Which checks to run for which change, and how the test suites are organized.

Run the checks that match your change first. The full suites have extra OS and account needs.

#Checks by change

You changedRun
Any TypeScriptbun run typecheck
Server codebun run test:unit, or the related files in tests/unit/
Web codebun run test:web, bun run build:web, then the related e2e specs
App stringsbun run check:i18n
Docsbun run check:docs and bun run docs:build
Native Go codebun run build:native, and go test in native/

#Test suites

SuiteWhereCommand
Server unittests/unit/bun run test:unit
Web unitweb/test/unit/bun run test:web
Web e2e (Playwright)web/test/e2e/bun run e2e:web
Fast fuzztests/fuzz/bun run test:fuzz:fast
Relaytests/relay/bun run test:relay
Linux install and isolationtests/linux/CI on systemd hosts

To run one e2e spec:

bun run --cwd web build
cd web && bunx playwright test -c playwright.config.ts test/e2e/a11y.spec.ts

#Accessibility

web/test/e2e/a11y.spec.ts runs an axe check on the main screens in light and dark themes and at phone width. Add new screens to it.

#Good habits

  • Use fictional data in fixtures and screenshots. Never commit keys or customer data.
  • Compare a failure with an untouched checkout before blaming your change. Some tests need converters or native helpers.
  • Do not run real-engine, deployment or account-changing tests without the right credentials and permission.

CI runs typecheck, check:docs, native builds, unit, fuzz, web and relay tests, and Linux install tests. See .github/workflows/ci.yml.

Trina AX is free software under AGPL-3.0-only. Icons: Lucide (ISC). Edit this page