Commit Graph

3 Commits

Author SHA1 Message Date
YoVinchen
f1b0fa2985 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.
2025-11-21 11:12:06 +08:00
Jason
b3c333c908 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)
2025-10-25 20:43:47 +08:00
Jason
001ac14c85 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
2025-10-25 19:59:31 +08:00