Run tests and coverage for dart_node packages. Automatically detects which packages to test based on changed files.
If $ARGUMENTS specifies a tier or package, use that. Otherwise, detect which packages were affected by recent changes:
git diff --name-only main
Map changed files to packages:
| Changed path | Test target |
|---|---|
| packages/dart_node_core/ | packages/dart_node_core |
| packages/dart_node_express/ | packages/dart_node_express |
| packages/dart_node_ws/ | packages/dart_node_ws |
| packages/dart_node_better_sqlite3/ | packages/dart_node_better_sqlite3 |
| packages/dart_node_mcp/ | packages/dart_node_mcp |
| packages/dart_node_react/ | packages/dart_node_react |
| packages/dart_node_react_native/ | packages/dart_node_react_native |
| packages/dart_logging/ | packages/dart_logging |
| packages/reflux/ | packages/reflux |
| packages/dart_jsx/ | packages/dart_jsx |
| examples/frontend/ | examples/frontend |
| examples/markdown_editor/ | examples/markdown_editor |
| examples/reflux_demo/ | examples/reflux_demo/web_counter |
| tools/ or root config | Run --all |
If a Tier 1 package changed, also run its downstream dependents in Tier 2/3.
Specific packages (preferred — faster):
./tools/test.sh packages/dart_node_core packages/dart_node_express
Full tier:
./tools/test.sh --tier 1
Everything (use --all arg or when root files changed):
./tools/test.sh
For each Node package that was tested, run the coverage tool:
cd packages/<name> && dart run ../dart_node_coverage/bin/coverage.dart
Node packages (use coverage CLI): dart_node_core, dart_node_express, dart_node_ws, dart_node_better_sqlite3, dart_node_mcp, dart_node_react_native
Browser packages (use dart test -p chrome): dart_node_react
Standard packages (use dart test --coverage): dart_logging, reflux
Minimum coverage: 80%. If below threshold, read coverage/lcov.info and identify uncovered lines.
dart_logging, dart_node_corereflux, dart_node_express, dart_node_ws, dart_node_better_sqlite3, dart_node_mcp, dart_node_react_native, dart_node_reactexamples/frontend, examples/markdown_editor, examples/reflux_demo/web_counterlogs/<package>.log and diagnoseSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer