Files
proffesor-for-testing__agen…/jest.config.code-intelligence.js
Profa dc91c7d39c feat(code-intelligence): complete Waves 3-5 implementation
Wave 3 - Incremental Indexing & Embeddings:
- IncrementalIndexer with content hashing and change detection
- FileWatcher with debouncing and pattern matching
- GitChangeDetector for commit-based change tracking
- ASTChunker with semantic boundaries (avg 847 tokens)
- NomicEmbedder with Ollama nomic-embed-text integration

Wave 4 - Knowledge Graph:
- GraphBuilder with SQL-based node/edge storage
- RelationshipExtractor for inheritance, calls, implements
- ImportParser for multi-language import resolution
- TestMapper for test-to-source file correlation

Wave 5 - Hybrid Search & RAG:
- BM25Search with TF-IDF ranking
- VectorSearch with pgvector/in-memory fallback
- HybridSearchEngine with RRF fusion (k=60)
- CodeChunkStore for PostgreSQL persistence
- CodeIntelligenceHybridRouter for embeddings
- ContextBuilder and GraphExpander for RAG
- SemanticRetriever for context-aware retrieval

Infrastructure:
- Separate Jest configs for code-intelligence tests
- Worker isolation to prevent tree-sitter corruption
- Fixed FileWatcher timer issues (real timers)
- 467 tests passing, 4 skipped (Ollama-only)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 08:22:26 +00:00

60 lines
1.6 KiB
JavaScript

/**
* Separate Jest config for code-intelligence tests
*
* Tree-sitter native module state gets corrupted when multiple test files
* load it in the same process. These tests MUST run in complete isolation.
*/
process.env.NODE_ENV = 'test';
module.exports = {
displayName: 'code-intelligence',
preset: 'ts-jest',
testEnvironment: 'node',
// Run code-intelligence tests
testMatch: [
'**/tests/code-intelligence/**/*.test.ts'
],
// Exclude benchmarks (they run separately)
testPathIgnorePatterns: [
'/benchmarks/',
'benchmarks\\.test\\.(ts|js)$'
],
roots: ['<rootDir>/tests'],
transform: {
'^.+\\.(ts|tsx)$': ['ts-jest', {
tsconfig: {
skipLibCheck: true,
skipDefaultLibCheck: true
},
isolatedModules: true
}]
},
globalSetup: '<rootDir>/jest.global-setup.ts',
globalTeardown: '<rootDir>/jest.global-teardown.ts',
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts', '<rootDir>/tests/setup.ts'],
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
'^@core/(.*)$': '<rootDir>/src/core/$1',
'^@agents/(.*)$': '<rootDir>/src/agents/$1',
'^@types$': '<rootDir>/src/types/index.ts',
'^@types/(.*)$': '<rootDir>/src/types/$1',
'^agentdb$': '<rootDir>/__mocks__/agentdb.ts',
'^(\\.{1,2}/.*)\\.js$': '$1'
},
// CRITICAL: Run each test file in its own worker to avoid native module corruption
maxWorkers: 1,
workerIdleMemoryLimit: '1MB', // Force worker restart after each test file
testTimeout: 60000,
transformIgnorePatterns: [
'node_modules/(?!(@faker-js|uuid|agentdb)/)'
]
};