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

  1. 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
  2. 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
  3. 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

  1. Start dev server: nx serve gograb-space
  2. Open browser: http://localhost:5200
  3. Follow checklist: docs/english/GoGrab-Space/browser-verification-checklist.md

Critical Tests to Run First

  1. Auto-Registration Flow (5 min)

    • New user → Auto temp user → Dashboard
    • Direct URL access → Auto temp credentials
  2. 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
  3. Universe Creation Flow (5 min)

    • Navigate to creation → Fill form → Create → Verify in dashboard
  4. Context-Aware Navigation (5 min)

    • Editor without universe → Auto-redirect to creation
    • Editor with invalid universe → Redirect to space-map

Test Coverage Goals

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

❌ Failing Tests

  1. Check console for specific errors
  2. Verify mocks are set up correctly
  3. Check route configuration
  4. Verify service dependencies

Common Issues

Issue: Tests fail with "Cannot find module"

Issue: Router mocks not working

Issue: Async navigation tests failing

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:

Next Steps

  1. Run Tests: Execute unit test suite
  2. Fix Failures: Address any failing tests
  3. Browser Testing: Follow verification checklist
  4. Document Issues: Record any bugs found
  5. Update Tests: Add tests for new features

Test Maintenance