Jason
|
89aef39c74
|
test: add useProviderActions hook unit tests
- Add comprehensive tests for provider CRUD operations:
* addProvider: trigger mutation correctly
* updateProvider: update provider and refresh tray menu
* deleteProvider: call delete mutation
* isLoading: track all mutation pending states
- Test Claude plugin integration sync logic:
* Conditional sync based on app type (claude vs codex)
* Integration toggle handling (enabled/disabled)
* Error handling with custom/fallback messages
* Official vs custom provider category detection
- Test usage script save functionality:
* Update provider meta and invalidate cache on success
* Display error toast with custom/fallback messages on failure
- Mock React Query mutations, Tauri API, and toast notifications
- Fix TypeScript spread operator issues in mock definitions
- Cover all success/failure paths and edge cases
Test Coverage:
✓ 12 test cases covering provider actions
✓ Plugin sync: 5 scenarios (app type, toggle, errors)
✓ CRUD operations: add, update, delete
✓ Usage script: save success/failure
✓ Estimated 95%+ code coverage
Related: Provider management, Claude plugin integration, usage scripts
Total Tests: 16 passed (4 useDragSort + 12 useProviderActions)
|
2025-10-25 10:49:14 +08:00 |
|
Jason
|
bbf830a1da
|
test: add frontend testing infrastructure with vitest
- Introduce Vitest + React Testing Library + jsdom environment
- Add useDragSort hook unit tests covering:
* Sorting logic (sortIndex → createdAt → name)
* Successful drag operation (API call + cache invalidation)
* Failed drag operation (error toast display)
* Edge case (no valid target, no API call)
- Configure global test setup (i18n mock, auto cleanup)
- Update TypeScript configs to include tests/ directory
- Add test development plan documentation
Test Coverage:
✓ Provider drag-and-drop sorting core logic
✓ React Query cache refresh
✓ Toast notification display
✓ Boundary condition handling
Test Results: 4/4 passed (671ms)
Next Steps: Sprint 2 - component tests with MSW mock layer
|
2025-10-25 10:08:06 +08:00 |
|