Testing Guide
Ecosistema completo para organización y gestión de contenido con interfaces espaciales
Testing Guide - Route System & User Flows
Date: 2025-01-28 Status: ✅ Test Suite Created Purpose: Guide for running unit tests and browser verification
Test Suite Overview
Unit Tests Created
SpaceNavigationService Tests (
libs/core-angular/tests/services/space-navigation.service.spec.ts)- Space slug extraction from multiple sources
- Navigation to space-first routes
- Module navigation integration
- Fallback mechanisms
- Edge cases and error handling
EditorContextResolver Tests (
libs/core-angular/tests/resolvers/editor-context.resolver.spec.ts)- Redirect to universe creation when no universe exists
- Redirect to first universe when universe not specified
- Redirect to space-map when universe not found
- Set context when universe/page found
- Page context validation
UniverseContextGuard Tests (
libs/core-angular/tests/guards/universe-context.guard.spec.ts)- Redirects to creation when no universe exists
- Allows access when universe exists
- Space-first routing handling
- Space slug extraction
Running Unit Tests
Run All Tests
# Run all tests in core-angular
nx test core-angular
# Run tests with coverage
nx test core-angular --coverage
# Run tests in watch mode
nx test core-angular --watch
Run Specific Test File
# Test navigation service
nx test core-angular --testPathPattern=space-navigation.service.spec
# Test context resolver
nx test core-angular --testPathPattern=editor-context.resolver.spec
# Test guard
nx test core-angular --testPathPattern=universe-context.guard.spec
Run Tests with Vitest CLI
# If using Vitest directly
npx vitest run libs/core-angular/tests
Browser Verification
Quick Start
- Start dev server:
nx serve gograb-space - Open browser:
http://localhost:5200 - Follow checklist:
docs/english/GoGrab-Space/browser-verification-checklist.md
Critical Tests to Run First
Auto-Registration Flow (5 min)
- New user → Auto temp user → Dashboard
- Direct URL access → Auto temp credentials
Module Routes (10 min)
- Editor:
/:spaceSlug/editor - Space Map:
/:spaceSlug/space-map - Singularity:
/:spaceSlug/singularity - Modularity:
/:spaceSlug/modularity - Widgets:
/:spaceSlug/widgets - Launch Station:
/:spaceSlug/launch-station
- Editor:
Universe Creation Flow (5 min)
- Navigate to creation → Fill form → Create → Verify in dashboard
Context-Aware Navigation (5 min)
- Editor without universe → Auto-redirect to creation
- Editor with invalid universe → Redirect to space-map
Test Coverage Goals
- Unit Tests: 80%+ coverage for services, guards, resolvers
- Route Registration: 100% coverage (all routes verified)
- Navigation Service: 90%+ coverage (all methods tested)
Continuous Testing
Watch Mode During Development
# Terminal 1: Dev server
nx serve gograb-space
# Terminal 2: Tests in watch mode
nx test core-angular --watch
Pre-Commit Checks
# Run all tests before committing
nx run-many -t test --projects=core-angular
Test Results Interpretation
✅ Passing Tests
- All navigation logic working correctly
- Context resolution functioning
- Guards protecting routes properly
❌ Failing Tests
- Check console for specific errors
- Verify mocks are set up correctly
- Check route configuration
- Verify service dependencies
Common Issues
Issue: Tests fail with "Cannot find module"
- Fix: Verify tsconfig paths are correct
- Fix: Check imports are using correct paths
Issue: Router mocks not working
- Fix: Ensure
provideRouteris used in test setup - Fix: Verify route spies are set up correctly
Issue: Async navigation tests failing
- Fix: Use
awaitfor all navigation calls - Fix: Wait for navigation promises to resolve
Integration with CI/CD
GitHub Actions Example
- name: Run tests
run: |
nx test core-angular --coverage
nx test core-angular --testPathPattern=space-navigation
nx test core-angular --testPathPattern=editor-context
Manual Browser Testing Checklist
See comprehensive checklist:
docs/english/GoGrab-Space/browser-verification-checklist.md
Covers:
- ✅ 50+ test scenarios
- ✅ All module routes
- ✅ Context-aware navigation
- ✅ Error handling
- ✅ Performance checks
Next Steps
- Run Tests: Execute unit test suite
- Fix Failures: Address any failing tests
- Browser Testing: Follow verification checklist
- Document Issues: Record any bugs found
- Update Tests: Add tests for new features
Test Maintenance
- Update tests when routes change
- Add tests for new modules
- Keep mocks in sync with actual services
- Maintain high test coverage