| .. | ||
| benchmark-route.nu | ||
| benchmark-route.sh | ||
| full-test-suite.nu | ||
| full-test-suite.sh | ||
| README.md | ||
| test-navigation-sequence.nu | ||
| test-navigation-sequence.sh | ||
| test-single-route.nu | ||
| test-single-route.sh | ||
| validate-all-routes.nu | ||
| validate-all-routes.sh | ||
Navigation Test Scripts
This directory contains scripts for testing SPA navigation without requiring a browser. These scripts use the HTTP navigation test API to validate routes, test navigation sequences, and benchmark performance.
Prerequisites
-
Server with navigation testing API enabled:
just dev::with-nav-test # OR manually: ENABLE_NAV_TEST_API=true cargo leptos serve --features content-watcher -
Optional tools for better output:
# Install jq for JSON parsing brew install jq # macOS apt install jq # Ubuntu # Install bc for performance calculations brew install bc # macOS apt install bc # Ubuntu
Scripts
1. test-single-route.sh
Test individual route resolution.
# Test home route
./test-single-route.sh /
# Test services route
./test-single-route.sh /services
# Test Spanish route
./test-single-route.sh /es/contactar
2. test-navigation-sequence.sh
Test navigation transitions between routes.
# Test navigation from home to services
./test-navigation-sequence.sh / /services
# Test cross-language navigation
./test-navigation-sequence.sh / /es
3. validate-all-routes.sh
Validate all configured routes in the system.
# Validate all routes
./validate-all-routes.sh
4. benchmark-route.sh
Benchmark route resolution performance.
# Benchmark home route (default 1000 iterations)
./benchmark-route.sh /
# Benchmark with custom iterations
./benchmark-route.sh /services 5000
5. full-test-suite.sh
Run comprehensive navigation test suite.
# Run all tests
./full-test-suite.sh
Environment Variables
- BASE_URL: Server base URL (default:
http://localhost:3030)BASE_URL=http://localhost:8080 ./test-single-route.sh /
Integration with Just
These scripts are integrated with the justfile for easy access:
# Individual tests
just dev::nav-test-route /services
just dev::nav-test-sequence / /services
just dev::nav-test-validate
just dev::nav-test-bench /services
# Full suite
just dev::nav-test-all
CI/CD Usage
For automated testing in CI/CD pipelines:
# Start server in background
ENABLE_NAV_TEST_API=true cargo leptos serve --features content-watcher &
# Wait for server startup
sleep 5
# Run quick validation
./validate-all-routes.sh
# Or run full suite
./full-test-suite.sh
Troubleshooting
Server Not Running
❌ Server not running at http://localhost:3030
💡 Start server with: just dev::with-nav-test
Solution: Start the server with navigation testing API enabled.
Invalid Routes Found
❌ Invalid Routes:
- /nonexistent (en): Route not found
Solution: Check your route configuration in site/config/routes/ directory.
Missing Dependencies
💡 Install jq for better output formatting: brew install jq
Solution: Install optional dependencies for enhanced output formatting.
Output Examples
Successful Route Test
🧭 Testing navigation to: /services
✅ Route test successful
📊 Route Information:
Path: /services
Component: ServicesPage
Language: en
Valid: true
Resolution Time: 0.145ms
🎉 Navigation test completed successfully
Navigation Sequence Test
🧭 Testing navigation sequence: / → /services
✅ Navigation test successful
📊 Navigation Information:
From: / → /services
Transition: valid
From Component: HomePage
To Component: ServicesPage
Language: en
Valid: true
🎉 Navigation sequence test completed successfully
Performance Benchmark
🧭 Benchmarking route resolution: /services
✅ Benchmark completed
📊 Performance Metrics:
Path: /services
Component: ServicesPage
Iterations: 1000
Total Time: 125.43ms
Average Time: 0.125ms
Min Time: 0.089ms
Max Time: 2.134ms
🚀 Excellent performance (< 0.1ms avg)
⚡ Requests per second: ~7968