Testing NovyWave
NovyWave uses Rust unit tests, Playwright E2E tests, app verification tooling, and manual UI testing.
Rust Tests
Section titled “Rust Tests”Run workspace tests with:
cargo test --workspaceDevelopment Smoke Tests
Section titled “Development Smoke Tests”For day-to-day work, launch both modes and verify your change visually:
makers start # Browser mode on localhost:8082makers tauri # Desktop modePlaywright E2E Tests
Section titled “Playwright E2E Tests”End-to-end browser tests live in examples/e2e-tests/. They test file loading, signal selection, keyboard navigation, theme toggling, and canvas rendering.
cd examples/e2e-testsnpm installnpm run install-browsers # First time onlynpm test # Headlessnpm run test:headed # Show browser windowRequires the dev server running (makers start).
App Verification
Section titled “App Verification”The novywave-mcp tool can verify that a workspace restores correctly — loaded files, selected variables, and no stuck loading states:
makers start # Start dev server + WS servermakers verify-app # Run verification against tests/workspace_restoreThis connects to the WebSocket server on port 9225 and checks workspace state programmatically.
Updater Verification
Section titled “Updater Verification”Test the auto-update system end-to-end with a mock update server:
makers verify-updaterThis starts a local mock server, builds the Tauri app in test mode, and verifies the update flow.
Manual Testing Areas
Section titled “Manual Testing Areas”When verifying a change, check at least the domains it touches:
- file loading and format support (VCD, FST, GHW)
- navigation, cursor movement, and markers
- signal values, analog rendering, and row resizing
- signal groups and workspace picker
- plugin behavior (reload_watcher, files_discovery)
- configuration persistence across restart
- desktop-specific startup or updater behavior
Test Inputs
Section titled “Test Inputs”Use waveform files from test_files/ and examples/ for stable, reproducible traces.