Dev Guide

Testing Guide

Unit Testing

We use vitest to run unit tests.

  1. yarn run test to run all unit tests
  2. yarn run test:ui enable UI to run tests
  3. config launch.json in vscode to run single fi
  "version": "0.2.0",
  "configurations": [
      "type": "node",
      "request": "launch",
      "name": "Debug Current Test File",
      "autoAttachChildProcesses": true,
      "skipFiles": ["<node_internals>/", "/node_modules/**"],
      "program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
      "args": ["dev", "${relativeFile}"],
      "smartStep": true,
      "console": "integratedTerminal"

E2E Testing

We use playwright to run e2e tests for the web client. There are steps to run e2e:

  1. start server to speed up
  2. yarn run dev to run the web server if need
  3. yarn workspace @affine/server dev to run the node server if need
  4. enter the e2e directory
  5. tests/affine-cloud e2e for web cloud features, with web client and node server
  6. tests/affine-desktop e2e for electron client features
  7. tests/affine-desktop-cloud e2e for electron cloud features, with electron client and node server
  8. tests/affine-legacy e2e for legacy client to create data
  9. tests/affine-local e2e for web client
  10. tests/affine-migration e2e for migration, just in web environment
  11. tests/storybook storybook for component
  12. run e2e case
  13. yarn run e2e run all e2e cases
  14. yarn run e2e --ui use ui to run e2e cases
  15. use to run and debug single case.