The project will use layered verification:
- Python unit tests for graph identifiers, filters, and action inference.
- ROS 2 integration tests for discovery and relationship edges.
- Frontend unit tests for graph conversion, filtering, search, and details.
- Manual Electron tests against local and remote WebSocket backends.
Run backend unit tests in the locked uv environment:
cd backend
uv venv --system-site-packages
uv sync
uv run pytestFor ROS-backed commands, source ROS 2 Jazzy before uv run so its rclpy
modules are available. Validate the frontend export and snapshot parser plus
the production build with:
cd app
npm test
npm run buildOn Windows, also build the portable File-only release and verify opening, dragging, filtering, and exporting a graph JSON snapshot:
cd app
npm run dist:winThe portable build uses ZIP compression so its launch-time extraction remains responsive; the resulting EXE is intentionally larger than an LZMA/7z build.
For the installer, verify both modes on a supported Linux host. Use temporary directories for the command link and downloaded AppImage:
offline_bin="$(mktemp -d)"
NODE_MAP_BIN_DIR="$offline_bin" ./scripts/install-node-map.sh --offline
readlink "$offline_bin/node-map"
online_bin="$(mktemp -d)"
online_data="$(mktemp -d)"
NODE_MAP_BIN_DIR="$online_bin" NODE_MAP_DOWNLOAD_DIR="$online_data" \
bash <(wget -qO- https://raw.githubusercontent.com/HowardWhile/ros2-node-map/develop/scripts/install-node-map.sh)
readlink "$online_bin/node-map"