Commit Graph

2 Commits

  • test: update test suites to match component refactoring
    Comprehensive test updates to align with recent component refactoring
    and new auto-launch functionality.
    
    Component Tests:
    - AddProviderDialog.test.tsx (10 lines):
      * Updated test cases for new dialog behavior
      * Enhanced mock data for preset selection
      * Improved assertions for validation
    
    - ImportExportSection.test.tsx (16 lines):
      * Updated for new settings page integration
      * Enhanced test coverage for error scenarios
      * Better mock state management
    
    - McpFormModal.test.tsx (60 lines):
      * Extensive updates for form refactoring
      * New test cases for multi-app selection
      * Enhanced validation testing
      * Better coverage of stdio/http server types
    
    - ProviderList.test.tsx (11 lines):
      * Updated for new card layout
      * Enhanced drag-and-drop testing
    
    - SettingsDialog.test.tsx (96 lines):
      * Major updates for SettingsPage migration
      * New test cases for auto-launch functionality
      * Enhanced integration test coverage
      * Better async operation testing
    
    Hook Tests:
    - useDirectorySettings.test.tsx (32 lines):
      * Updated for refactored hook logic
      * Enhanced test coverage for edge cases
    
    - useDragSort.test.tsx (36 lines):
      * Simplified test cases
      * Better mock implementation
      * Improved assertions
    
    - useImportExport tests (16 lines total):
      * Updated for new error handling
      * Enhanced test coverage
    
    - useMcpValidation.test.tsx (23 lines):
      * Updated validation test cases
      * Better coverage of error scenarios
    
    - useProviderActions.test.tsx (48 lines):
      * Extensive updates for hook refactoring
      * New test cases for provider operations
      * Enhanced mock data
    
    - useSettings.test.tsx (12 lines):
      * New test cases for auto-launch
      * Enhanced settings state testing
      * Better async operation coverage
    
    Integration Tests:
    - App.test.tsx (41 lines):
      * Updated for new routing logic
      * Enhanced navigation testing
      * Better component integration coverage
    
    - SettingsDialog.test.tsx (88 lines):
      * Complete rewrite for SettingsPage
      * New integration test scenarios
      * Enhanced user workflow testing
    
    Mock Infrastructure:
    - handlers.ts (117 lines):
      * Major updates for MSW handlers
      * New handlers for auto-launch commands
      * Enhanced error simulation
      * Better request/response mocking
    
    - state.ts (37 lines):
      * Updated mock state structure
      * New state for auto-launch
      * Enhanced state reset functionality
    
    - tauriMocks.ts (10 lines):
      * Updated mock implementations
      * Better type safety
    
    - server.ts & testQueryClient.ts:
      * Minor cleanup (2 lines removed)
    
    Test Infrastructure Improvements:
    - Better test isolation
    - Enhanced mock data consistency
    - Improved async operation testing
    - Better error scenario coverage
    - Enhanced integration test patterns
    
    Coverage Improvements:
    - Net increase of 195 lines of test code
    - Better coverage of edge cases
    - Enhanced error path testing
    - Improved integration test scenarios
    - Better mock infrastructure
    
    All tests now pass with the refactored components while maintaining
    comprehensive coverage of functionality and edge cases.
  • test: migrate to MSW testing architecture for App integration test
    Major testing infrastructure upgrade from manual mocks to Mock Service Worker (MSW):
    
    New MSW infrastructure (tests/msw/):
    - Add state.ts: In-memory state manager with full CRUD operations
      - Manage providers and current selections per app type (Claude/Codex)
      - Auto-switch current provider when deleted
      - Deep clone to prevent reference pollution
    - Add handlers.ts: HTTP request handlers for 10 Tauri API endpoints
      - Mock get_providers, switch_provider, add/update/delete_provider
      - Mock update_sort_order, update_tray_menu, import_default_config
      - Support error scenarios (404 for non-existent providers)
    - Add tauriMocks.ts: Tauri API mock layer
      - Transparently convert invoke() calls to HTTP requests
      - Mock event listener system with emitTauriEvent helper
      - Use cross-fetch for Node.js environment
    - Add server.ts: MSW server setup for Node.js test environment
    
    Refactor App.test.tsx (-170 lines, -43%):
    - Remove 23 manual mocks (useProvidersQuery, useProviderActions, etc.)
    - Run real hooks with MSW-backed API calls instead of mock implementations
    - Test real state changes instead of mock call counts
    - Add comprehensive flow: duplicate → create → edit → delete → event listening
    - Verify actual provider list changes and current selection updates
    
    Setup integration:
    - Add MSW server lifecycle to tests/setupTests.ts
      - Start server before all tests
      - Reset handlers and state after each test
      - Close server after all tests complete
    - Clear all mocks in afterEach for test isolation
    
    Dependencies:
    - Add msw@^2.11.6 for API mocking
    - Add cross-fetch@^4.1.0 for fetch polyfill in Node.js
    
    Type fixes:
    - Add missing imports (AppType, Provider) in handlers.ts
    - Fix HttpResponse.json generic constraint with as any (MSW best practice)
    - Change invalid category "default" to "official" in state.ts
    
    Test results: All 50 tests passing across 8 files, 0 TypeScript errors