Commit Graph

2 Commits

  • 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