-
-
Notifications
You must be signed in to change notification settings - Fork 48
Testing Strategy
github-actions[bot] edited this page Mar 7, 2026
·
2 revisions
Mindwtr uses a layered testing strategy across core, platform apps, and integration surfaces.
- Protect data integrity (sync, storage, merge rules)
- Catch regressions in critical user workflows
- Keep tests fast and deterministic in CI
- Primary logic coverage (sync, recurrence, parsing, storage helpers)
- Fast unit tests with deterministic fixtures
- Most data integrity invariants should be enforced here first
- Component and view behavior tests (Vitest + Testing Library)
- Focus on interaction-heavy views and sync orchestration wrappers
- Utility and orchestration tests
- Critical flow smoke tests for sync and task editing behavior
- Device-specific UI behavior still relies partly on manual verification
- API endpoint tests
- Auth/rate-limit/path validation
- CRUD and attachment endpoint behavior
- Coverage is targeted around core request handling, not exhaustive concurrent deployment scenarios
- Query layer correctness (search, add/update/delete/restore)
- Input validation and transaction behavior
- Coverage is focused on tool behavior and validation, not full end-to-end editor/LLM workflows
-
packages/corehas the strongest automated coverage and should remain the first line of defense for data integrity regressions. - Desktop has good component coverage in critical views, but not every interaction path is covered end-to-end.
- Mobile coverage is intentionally lighter than desktop/core coverage; accessibility, gestures, and native integration paths still need manual checks on devices.
- Cloud and MCP server tests cover core handlers and validation paths, but do not yet simulate every production concurrency or deployment edge case.
When adding or changing behavior, prioritize tests in this order:
- Data correctness and merge semantics
- Error paths and retry/timeout behavior
- User-facing interaction path
- Performance-sensitive logic (search/sync/list transforms)
Before merge:
- Add or update tests for changed behavior
- Run affected package tests locally
- Run broader workspace tests for cross-package changes
- Verify no snapshot/state coupling between tests
- Prefer deterministic timestamps/fixtures over live time.
- Avoid network dependency in unit tests.
- Keep each test focused on one behavior.
- Use integration tests for workflow boundaries, not every branch.
- Treat flaky tests as bugs and fix root cause quickly.
- When a platform-specific bug is fixed without robust automation, document the required manual verification steps in the PR.
Mindwtr • AGPL-3.0 License • dongdongbh
Getting Started
User Guides
GTD Methodology
Data & Sync
- Data and Sync
- Backup-and-Restore
- Cloud Sync
- iCloud Sync
- Sync Algorithm
- Dropbox Sync
- Cloud API
- Cloud Deployment
- Local API
- MCP Server
- Web App PWA
- Calendar Integration
- Obsidian Integration
- Markdown Links
- AI Assistant
- Reusable Lists
- Attachments
- Diagnostics and Logs
Imports & Migrations
Developer Docs
- Developer Guide
- Developer Troubleshooting
- Architecture
- Core API
- Database Schema
- Release Process
- Testing Strategy
- Performance Guide
- Contributing (Repository Guide)
Links