You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,18 +42,24 @@ Before submitting, check that your change:
42
42
## Tests
43
43
44
44
-`npm test` — runs the unit suite under `tests/unit/` via the in-repo Node test runner.
45
-
-`npm run test:snapshots:check` — runs only the render-snapshot tests; fails on any drift in `tests/__snapshots__/`.
46
-
-`npm run test:snapshots:update` — rewrites the golden files in `tests/__snapshots__/` after an intentional render change. Review the diff carefully: snapshot updates are the only signal that catches unintended UI regressions.
45
+
-`npm run test:snapshots:check` — runs only the render-snapshot tests; fails on any drift in `tests/snapshots/`.
46
+
-`npm run test:snapshots:update` — rewrites the golden files in `tests/snapshots/` after an intentional render change. Review the diff carefully: snapshot updates are the only signal that catches unintended UI regressions.
47
47
-`npm run test:e2e` — runs the process-isolated end-to-end suite under `tests/e2e/`.
48
48
49
49
## CI
50
50
51
-
Pull requests are automatically tested via GitHub Actions. The pipeline runs:
51
+
Pull requests are automatically tested via GitHub Actions. A cross-platform matrix runs on every push and PR:
52
52
53
-
1.**Quick-check** (Ubuntu, Node 22): `npm ci`, type check (`npx tsc --noEmit`), and security audit (`npm audit`). Catches trivial failures before the full matrix.
54
-
2.**Cross-platform matrix** (depends on quick-check): Unit tests on Ubuntu (Node 22 + 24), macOS (Node 24), and Windows (Node 24). E2E tests on all platforms.
53
+
| OS | Node | Runs |
54
+
|---|---|---|
55
+
| Ubuntu | 22 (minimum) | Type check, security audit, unit tests, E2E tests |
56
+
| Ubuntu | 24 | Type check, security audit, unit tests, E2E tests |
57
+
| macOS | 24 | Unit tests, E2E tests |
58
+
| Windows | 24 | Unit tests, E2E tests |
55
59
56
-
Snapshot golden files in `tests/__snapshots__/` are stored with LF line endings (enforced by `.gitattributes`). The `normalizeEOL` helper in the snapshot test file normalizes `\r\n` to `\n` on read, so Windows developers get correct comparisons even if their working tree has CRLF. If you update snapshots, the CI matrix validates them on all platforms.
60
+
Node 22 (minimum) is tested only on Linux — the primary platform and the only one guaranteed to have the oldest toolchain. macOS and Windows test Node 24 (latest) to catch regressions in the newest runtime while balancing CI cost.
61
+
62
+
Snapshot golden files in `tests/snapshots/` are stored with LF line endings (enforced by `.gitattributes`). The `normalizeEOL` helper in the snapshot test file normalizes `\r\n` to `\n` on read, so Windows developers get correct comparisons even if their working tree has CRLF. If you update snapshots, the CI matrix validates them on all platforms.
57
63
The E2E suite runs on all platforms including Windows (verified in issue #12).
0 commit comments