VS Code Extension Integration Test Suite
VS Code extension deve integrar perfeitamente com Vectora, fornecendo UX intuitiva, respondendo rapidamente e usando Vectora quando apropriado para fornecer code intelligence superior sem interromper o workflow do desenvolvedor. Cobertura: 100+ testes | Prioridade: CRÍTICA
Principles
Princípios
- Seamless Integration: Não interrompe workflow do user
- Instant Feedback: Resultados em < 500ms
- Visual Clarity: UI clara e intuitiva
- Smart Defaults: Usa Vectora quando apropriado
- Offline Support: Funciona mesmo sem Vectora
Segmentos de Testes
1. Extension Activation & Initialization (15 testes)
Test: Extension Loads Successfully
Given: VS Code com Vectora extension instalada
When: Extension ativada
Then:
- Status bar mostra "Vectora: Ready"
- Commands disponíveis
- Sidebar icon visível
- Sem errors no consoleTest: MCP Server Connection
Given: Extension ativada
When: Tenta conectar ao Vectora MCP
Then:
- Conexão estabelecida em < 2s
- Server info recebida
- Status: "Connected"
- Timeout graceful se falharTest: Command Palette Registration
Given: Extension ativada
When: Command palette aberto
Then: Comandos visíveis:
- Vectora: Search
- Vectora: Analyze File
- Vectora: Find Similar
- Vectora: Show Metrics
- Etc.Test: Sidebar Panel Initialization
Given: Extension ativada
When: Sidebar aberto
Then:
- Painel Vectora visível
- Status section
- Recent searches
- Settings button
- Help button2. Search Functionality (25 testes)
Test: Quick Search from Editor
Given: User tem arquivo aberto
And: Seleciona texto: "getUserById"
When: Click Vectora search
Then:
- Search panel abre
- Query pré-populado
- Results mostram < 300ms
- Resultados formatados com sintaxeTest: Advanced Search Dialog
Given: User clica "Advanced Search"
When: Dialog abre
Then: Opções disponíveis:
- Query text
- Filters (file type, complexity)
- Sort by (relevance, recency)
- Top K results
- Submit & ResultsTest: Search Results Navigation
Given: 20 resultados retornados
When: User clica num resultado
Then:
- Editor abre no arquivo
- Linha do resultado visível
- Highlight visual aplicado
- Context window visívelTest: Result Breadcrumb
Given: Resultado clicado
When: File aberto
Then: Breadcrumb mostra:
/path/to/file.ts > Function > Line: 42Test: Pagination
Given: 100+ resultados
When: User vê top 10
Then: Opção "Load More" disponível
And: Carrega próximos 10 sem refresh3. File Analysis (20 testes)
Test: Analyze Current File
Given: Arquivo TypeScript aberto
When: "Vectora: Analyze File" executado
Then: Panel mostra:
- Estrutura do arquivo (funções, classes)
- Complexidade
- Funções sem testes
- Potenciais issues
- DependênciasTest: Inline Hover Information
Given: User hover no mouse em function name
When: Espera 500ms
Then: Tooltip mostra:
- Function signature
- Documentation
- Call count
- Test coverageTest: File Metrics
Given: File aberto
When: Metrics panel solicitado
Then: Mostra:
- Total functions: N
- Average complexity: X
- Test coverage: Y%
- Lines of code: Z
- Dependencies: W4. Code Analysis & Suggestions (20 testes)
Test: Find Similar Code
Given: User seleciona função
When: "Find Similar" executado
Then:
- Similar patterns encontrados
- Mostrados em nova panel
- Comparação visual
- Refactoring suggestionsTest: Dependency Analysis
Given: Function no editor
When: "Analyze Dependencies" executado
Then:
- Grafo de dependências mostrado
- Chamadas entrantes/saintes
- Transitive deps mapeadas
- Circular refs alertadosTest: Code Smell Detection
Given: File contém código questionável
When: Analysis executado
Then: Issues destacados:
- Long functions (> 50 LOC)
- High complexity (> 5)
- Duplicated code
- Missing tests
- Dead code5. Diagnostics & Quick Fixes (15 testes)
Test: Inline Diagnostics
Given: File com potencial issues
When: Aberto
Then:
- Squiggly lines no código
- Hover mostra explanation
- Quick fix sugestões
- Luz amarela se avisoTest: Quick Fix Suggestions
Given: Issue detectado
When: User clica quick fix
Then: Opções oferecidas:
- Extract to function
- Add tests
- Add documentation
- Refactor patternTest: Batch Fixes
Given: 5 issues no arquivo
When: "Fix All" selecionado
Then:
- Todos fixados automaticamente
- User confirmação antes
- Undo disponível6. UI/UX Components (15 testes)
Test: Status Bar Updates
Given: Extension operando
When: Various states
Then: Status bar mostra:
- "Vectora: Ready" (normal)
- "Vectora: Searching..." (loading)
- "Vectora: Error" (error)
- "Vectora: Offline" (disconnected)Test: Sidebar Persistence
Given: Sidebar com abas (search, analysis)
When: User muda abas
Then:
- Estado preservado
- Scroll position mantido
- Data cached
- Performance ótimaTest: Dark Mode Support
Given: VS Code em dark mode
When: Extension UI renderizado
Then:
- Colors legíveis
- Contrast > 4.5:1
- Icons visíveis
- No strain in eyesTest: Keyboard Shortcuts
Given: Extension ativada
When: Atalhos usados:
- Ctrl+Shift+V (Search)
- Ctrl+Shift+A (Analyze)
- Ctrl+Shift+D (Dependencies)
Then: Comandos executados sem mouse7. Settings & Configuration (10 testes)
Test: Settings UI
Given: Settings panel aberto
When: Vectora settings visível
Then: Opções:
- Enable/disable extension
- Vectora server URL
- Max results
- Timeout
- Auto-analyze on saveTest: Settings Persistence
Given: User customiza settings
When: VS Code reaberto
Then: Todas settings preservadas
And: Aplicadas imediatamenteTest: Workspace vs User Settings
Given: Projeto com vectora.config.json
When: Extension inicia
Then: Workspace settings override user settings
And: Hierarchia respectada8. Performance (10 testes)
Test: Search Response Time
Given: Search query executado
When: Processado
Then: Results em < 300ms
And: UI não freezes
And: Responsivo durante esperaTest: Memory Usage
Given: Extension rodando por 1 hora
When: Memory monitorado
Then:
- Sem memory leaks
- Uso < 100MB
- Garbage collection funcionaTest: Large File Handling
Given: Arquivo de 10000+ linhas
When: Aberto
Then:
- Análise rápida (< 2s)
- Syntax highlighting funciona
- Scroll sem lag
- Search funciona bemPerformance SLAs
| Operation | Target Latency |
|---|---|
| Search | < 300ms |
| File Analysis | < 500ms |
| Find Similar | < 800ms |
| Dependency Graph | < 1s |
| Load More | < 200ms |
Critérios de Aceitação
| Critério | Alvo |
|---|---|
| Extension load time | < 2s |
| Search response | < 300ms |
| UI responsiveness | 60 FPS |
| Memory usage | < 100MB |
| Success rate | 99%+ |
| Zero crashes | 100% |
| User satisfaction | 95%+ |
Como Executar
# VS Code Extension Testing Framework
npm install --save-dev @vscode/test-electron
# Rodar testes
npm test
# Roda testes específicos
npm test -- --grep "Search Functionality"
# Integração testing
npm run test:integration
# Performance profiling
npm run test:perf
# UI snapshot testing
npm run test:snapshotsTest Data
Usaremos fixtures com:
- Projetos TypeScript reais
- JavaScript com diferentes styles
- Python, Go, outros
- Arquivos de vários tamanhos (1KB - 100MB)
Mapa de Implementação
- Extension Activation (15 testes)
- Search Functionality (25 testes)
- File Analysis (20 testes)
- Code Analysis & Suggestions (20 testes)
- Diagnostics & Quick Fixes (15 testes)
- UI/UX Components (15 testes)
- Settings & Configuration (10 testes)
- Performance (10 testes)
Total: 100+ testes
Integration with Gemini CLI
Esta suite de testes do VS Code espelha a suite do Gemini CLI:
- Decision intelligence similar
- Performance targets similares
- Error handling patterns iguais
- Messaging consistent
Isso garante que ambas integrações sejam “padrão ouro” em qualidade.
External Linking
| Concept | Resource | Link |
|---|---|---|
| MCP | Model Context Protocol Specification | modelcontextprotocol.io/specification |
| MCP Go SDK | Go SDK for MCP (anthropics/go-sdk) | github.com/anthropics/anthropic-sdk-go |
| Gemini API | Google AI Studio & Gemini API Documentation | ai.google.dev/docs |
| TypeScript | TypeScript: Typed superset of JavaScript | www.typescriptlang.org/docs/ |
Vectora v0.1.0 · GitHub · Licença (MIT) · Contribuidores
Parte do ecossistema Vectora AI Agent. Construído com ADK, Claude e Go.
© 2026 Contribuidores do Vectora. Todos os direitos reservados.