Commit Graph

3 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: add directory browsing/reset and useSettings hook tests
    SettingsDialog Integration Tests:
    - Add test for directory browsing and reset functionality
      - Verify app config directory browse/reset flow
      - Verify Claude config directory manual change, browse, and reset
      - Test multiple directory inputs with getAllByTitle pattern
    - Add test for export failure error handling
      - User cancels file selection (save_file_dialog returns null)
      - Export operation fails (disk full scenario)
      - Use server.use() to dynamically override MSW handlers
      - Verify toast error messages match i18n keys
    
    MSW Handler Extension:
    - Add pick_directory handler to support directory selection API
    - Consistent with select_config_directory mock strategy
    
    useSettings Hook Unit Tests:
    - Add comprehensive tests for settings save logic
      - Test restart flag when app config directory changes
      - Test no restart when directory unchanged
      - Verify space trimming and empty string to undefined conversion
      - Test Claude plugin sync failure tolerance
    - Add test for settings reset functionality
      - Verify form/language/directories reset with server data
    - Use factory functions for mock creation (reusability)
    - Complete dependency isolation with mock hooks
    
    All tests passing: 9/9 (5 integration + 4 unit tests)
  • test: add SettingsDialog integration tests and enhance MSW infrastructure
    - Add comprehensive SettingsDialog integration tests with 3 test cases:
      * Load default settings from MSW
      * Import configuration and trigger success callback
      * Save settings and handle restart prompt
    - Extend MSW handlers with settings-related endpoints:
      * get_settings/save_settings for settings management
      * app_config_dir_override for custom config directory
      * apply_claude_plugin_config for plugin integration
      * import/export config file operations
      * file/directory dialog mocks
    - Add settings state management to MSW mock state:
      * Settings state with default values
      * appConfigDirOverride state
      * Reset logic in resetProviderState()
    - Mock @tauri-apps/api/path for DirectorySettings tests
    - Refactor App.test.tsx to focus on happy path scenarios:
      * Remove delete functionality test (covered in useProviderActions unit tests)
      * Reorganize test flow: settings → switch → usage → create → edit → switch → duplicate
      * Remove unnecessary state verifications
      * Simplify event testing
    
    All tests passing: 4 integration tests + 12 unit tests