mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-20 23:21:06 +02:00
- Add TrelloConnector class with API integration for boards, cards, and comments - Implement Trello indexing task for background document processing - Add TRELLO_CONNECTOR enum to DocumentType and SearchSourceConnectorType - Create /trello/boards/ API endpoint for board fetching - Add TrelloCredentialsRequest Pydantic model for API validation - Implement Trello search functionality in ConnectorService - Add comprehensive test suite with 80+ test cases covering: * Unit tests for TrelloConnector class with error handling * Integration tests for API endpoints and database operations * Frontend component tests for configuration and creation pages * End-to-end workflow testing - Add test configuration with shared fixtures and mock data - Create test runner script and comprehensive documentation - Fix missing TRELLO_CONNECTOR in SearchSourceConnectorType enum - Add frontend TrelloBoard interface and connector page - Implement complete connector creation flow with board selection - Add robust error handling for API failures, timeouts, and malformed data - Include security considerations for credential handling and input validation
6.8 KiB
6.8 KiB
Trello Connector Tests
This document provides a comprehensive overview of the test suite for the Trello connector implementation.
Test Structure
Backend Tests
1. Unit Tests (test_trello_connector.py)
- Purpose: Tests the core
TrelloConnectorclass functionality - Coverage:
- Initialization with valid/invalid credentials
- API method calls (
get_user_boards,get_board_data,get_card_details) - Error handling for various failure scenarios
- Edge cases (empty responses, malformed data, timeouts)
2. Comprehensive Tests (test_trello_connector_comprehensive.py)
- Purpose: Extended test coverage for all Trello connector components
- Coverage:
TrelloConnectorclass (enhanced)TrelloIndexerfunctionality- API routes (
list_trello_boards) - Database integration
- Pydantic models (
TrelloCredentialsRequest) - Indexing helper functions
3. Integration Tests (test_trello_integration.py)
- Purpose: End-to-end testing of the complete Trello connector flow
- Coverage:
- API endpoint integration
- Database operations
- Complete indexing workflow
- Error scenarios and edge cases
4. Test Configuration (conftest.py)
- Purpose: Shared fixtures and test configuration
- Fixtures:
- Mock database sessions
- Sample Trello data (boards, cards, comments)
- Mock connectors and users
- Error scenarios
Frontend Tests
1. Component Tests (EditTrelloConnectorConfig.test.tsx)
- Purpose: Tests the Trello connector configuration component
- Coverage:
- Form validation
- API integration
- Board selection functionality
- Error handling
- User interactions
2. Page Tests (trello-connector.test.tsx)
- Purpose: Tests the Trello connector creation page
- Coverage:
- Form submission
- Board fetching and selection
- Connector creation flow
- Navigation and routing
- Loading states
Test Categories
1. Unit Tests
- TrelloConnector Class: All methods and error handling
- API Integration: Mock HTTP requests and responses
- Data Validation: Input validation and error cases
2. Integration Tests
- Database Operations: Document creation and storage
- API Endpoints: Complete request/response cycles
- Background Tasks: Indexing workflow
- Error Propagation: End-to-end error handling
3. Frontend Tests
- Component Behavior: User interactions and state management
- API Integration: Mock fetch calls and responses
- Form Validation: Input validation and error display
- Navigation: Routing and page transitions
Running Tests
Backend Tests
# Run all Trello tests
python run_trello_tests.py
# Run specific test file
pytest tests/connectors/test_trello_connector.py -v
# Run specific test
python run_trello_tests.py test_initialization_success
# Run with coverage
pytest tests/connectors/ --cov=app.connectors.trello_connector --cov-report=html
Frontend Tests
# Run all frontend tests
npm test
# Run specific test file
npm test EditTrelloConnectorConfig.test.tsx
# Run with coverage
npm test -- --coverage
Test Data
Sample Trello Boards
[
{"id": "board1", "name": "Project Board"},
{"id": "board2", "name": "Personal Tasks"},
{"id": "board3", "name": "Team Collaboration"}
]
Sample Trello Cards
[
{
"id": "card1",
"name": "Implement user authentication",
"desc": "Add login and registration functionality",
"url": "https://trello.com/c/card1",
"due": "2023-12-31T23:59:59.000Z",
"labels": [{"name": "High Priority", "color": "red"}]
}
]
Sample Card Details
{
"id": "card1",
"name": "Implement user authentication",
"desc": "Add login and registration functionality with JWT tokens",
"url": "https://trello.com/c/card1",
"comments": [
"This is a high priority task",
"Make sure to include password reset functionality"
]
}
Error Scenarios Tested
API Errors
- Invalid credentials
- Network timeouts
- Connection errors
- HTTP errors (401, 403, 404, 500)
- Rate limiting
- Malformed responses
Database Errors
- Connection failures
- Transaction rollbacks
- Constraint violations
- Missing records
Frontend Errors
- Form validation failures
- API call failures
- Network errors
- Component state errors
Mock Strategy
Backend Mocks
requests.get: Mock Trello API callsAsyncSession: Mock database operationsTrelloConnector: Mock connector instancescurrent_active_user: Mock authentication
Frontend Mocks
fetch: Mock API callstoast: Mock notificationsuseRouter: Mock Next.js routinguseSearchSourceConnectors: Mock custom hooks
Test Coverage Goals
- Unit Tests: 95%+ coverage for core classes
- Integration Tests: 90%+ coverage for API endpoints
- Frontend Tests: 90%+ coverage for components
- Error Handling: 100% coverage for error scenarios
Continuous Integration
Backend CI
- Run tests on Python 3.8, 3.9, 3.10, 3.11
- Check code coverage
- Run linting (flake8, black, isort)
- Run type checking (mypy)
Frontend CI
- Run tests on Node.js 16, 18, 20
- Check code coverage
- Run linting (ESLint, Prettier)
- Run type checking (TypeScript)
Performance Testing
Backend Performance
- API response times
- Database query performance
- Memory usage during indexing
- Concurrent request handling
Frontend Performance
- Component render times
- Bundle size impact
- Memory usage
- User interaction responsiveness
Security Testing
Backend Security
- Input validation
- SQL injection prevention
- Authentication and authorization
- API key handling
Frontend Security
- XSS prevention
- CSRF protection
- Input sanitization
- Secure API communication
Maintenance
Test Maintenance
- Regular updates for API changes
- Dependency updates
- Test data refresh
- Performance optimization
Documentation Updates
- Test case documentation
- API documentation
- Error handling documentation
- User guide updates
Troubleshooting
Common Issues
- Import Errors: Ensure all dependencies are installed
- Mock Failures: Check mock setup and return values
- Database Errors: Verify test database configuration
- API Errors: Check mock response format
Debug Commands
# Debug specific test
pytest tests/connectors/test_trello_connector.py::TestTrelloConnector::test_initialization_success -v -s
# Run with debug output
pytest tests/connectors/ -v -s --log-cli-level=DEBUG
# Check test discovery
pytest --collect-only tests/connectors/
Future Enhancements
Planned Improvements
- Performance benchmarking
- Load testing
- Security testing automation
- Visual regression testing
- Accessibility testing
Test Automation
- Automated test generation
- Test data management
- Continuous testing
- Test result reporting