sourcefinder/jest.config.js
Alexis Trouvé a7bd6115b7
Some checks failed
SourceFinder CI/CD Pipeline / Code Quality & Linting (push) Has been cancelled
SourceFinder CI/CD Pipeline / Unit Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Security Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Integration Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Performance Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Code Coverage Report (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (16.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (18.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (20.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Regression Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Security Audit (push) Has been cancelled
SourceFinder CI/CD Pipeline / Notify Results (push) Has been cancelled
feat: Implémentation complète du système SourceFinder avec tests
- Architecture modulaire avec injection de dépendances
- Système de scoring intelligent multi-facteurs (spécificité, fraîcheur, qualité, réutilisation)
- Moteur anti-injection 4 couches (preprocessing, patterns, sémantique, pénalités)
- API REST complète avec validation et rate limiting
- Repository JSON avec index mémoire et backup automatique
- Provider LLM modulaire pour génération de contenu
- Suite de tests complète (Jest) :
  * Tests unitaires pour sécurité et scoring
  * Tests d'intégration API end-to-end
  * Tests de sécurité avec simulation d'attaques
  * Tests de performance et charge
- Pipeline CI/CD avec GitHub Actions
- Logging structuré et monitoring
- Configuration ESLint et environnement de test

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 23:06:10 +08:00

117 lines
2.5 KiB
JavaScript

/**
* Configuration Jest pour SourceFinder
* Suite complète de tests unitaires, intégration et sécurité
*/
module.exports = {
// Environment de test
testEnvironment: 'node',
// Répertoires de tests
testMatch: [
'**/tests/**/*.test.js',
'**/tests/**/*.spec.js',
'**/__tests__/**/*.js'
],
// Fichiers à ignorer
testPathIgnorePatterns: [
'/node_modules/',
'/data/',
'/logs/',
'/coverage/'
],
// Setup global pour les tests
setupFilesAfterEnv: ['<rootDir>/tests/setup.js'],
// Configuration coverage
collectCoverage: true,
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'html', 'json'],
collectCoverageFrom: [
'src/**/*.js',
'!src/**/*.test.js',
'!src/**/*.spec.js',
'!src/server.js', // Point d'entrée exclus
'!src/logs/**',
'!src/data/**'
],
// Seuils de couverture minimums
coverageThreshold: {
global: {
branches: 70,
functions: 75,
lines: 80,
statements: 80
},
// Seuils critiques pour composants de sécurité
'src/security/': {
branches: 90,
functions: 95,
lines: 95,
statements: 95
},
'src/implementations/scoring/': {
branches: 85,
functions: 90,
lines: 90,
statements: 90
}
},
// Configuration timeouts
testTimeout: 30000, // 30s pour tests d'intégration avec LLM
// Variables d'environnement de test
setupFiles: ['<rootDir>/tests/env.setup.js'],
// Reporters simplifiés
reporters: [
'default'
],
// Support mocking
clearMocks: true,
resetMocks: true,
restoreMocks: true,
// Configuration verbose
verbose: true,
// Détection des tests qui s'exécutent en boucle
detectOpenHandles: true,
detectLeaks: true,
// Support ES modules et CommonJS
transform: {
'^.+\\.js$': 'babel-jest'
},
// Configuration pour tests parallèles
maxWorkers: '50%',
// Glob patterns pour différents types de tests
projects: [
{
displayName: 'unit',
testMatch: ['<rootDir>/tests/unit/**/*.test.js'],
testTimeout: 10000
},
{
displayName: 'integration',
testMatch: ['<rootDir>/tests/integration/**/*.test.js'],
testTimeout: 30000
},
{
displayName: 'security',
testMatch: ['<rootDir>/tests/security/**/*.test.js'],
testTimeout: 15000
},
{
displayName: 'performance',
testMatch: ['<rootDir>/tests/performance/**/*.test.js'],
testTimeout: 60000
}
]
};