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
- 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>
117 lines
2.5 KiB
JavaScript
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
|
|
}
|
|
]
|
|
}; |