mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 19:01:08 +02:00
Implement rock-solid automated testing infrastructure for mana-core-auth with daily execution, notifications, and comprehensive monitoring. Test Suite Improvements: - Fix all 36 failing BetterAuthService tests (missing service mocks) - Add 21 JwtAuthGuard tests achieving 100% statement coverage - Create silentError helper to suppress intentional error logs - Fix Todo backend TaskService test structure - Add jose mock for JWT testing - Configure jest collectCoverageFrom for mana-core-auth GitHub Actions Workflow: - Daily automated test execution (2 AM UTC + manual trigger) - Matrix parallelization across 6 backend services - PostgreSQL and Redis service containers - Coverage enforcement (80% threshold) - Multi-channel notifications (Discord, Slack, GitHub Issues) - Support for success notifications (opt-in) Test Infrastructure: - Coverage aggregation across multiple services - Flaky test detection with 30-run history tracking - Performance metrics tracking with regression detection - Test data seeding and cleanup scripts - Comprehensive test reporting with formatted metrics Documentation: - TESTING_GUIDE.md (4000+ words) - Complete testing documentation - AUTOMATED_TESTING_SYSTEM.md - System architecture and workflows - DISCORD_NOTIFICATIONS_SETUP.md - Discord webhook setup guide - TESTING_DEPLOYMENT_CHECKLIST.md - Pre-deployment verification - TESTING_QUICK_REFERENCE.md - Quick command reference Final Result: - 180/180 tests passing (100% pass rate) - Zero console errors in test output - Automated daily testing with rich notifications - Production-ready test infrastructure
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
module.exports = {
|
|
moduleFileExtensions: ['js', 'json', 'ts'],
|
|
rootDir: 'src',
|
|
testRegex: '.*\\.spec\\.ts$',
|
|
transform: {
|
|
'^.+\\.(t|j)s$': 'ts-jest',
|
|
},
|
|
collectCoverageFrom: [
|
|
'**/*.(t|j)s',
|
|
'!**/*.module.ts',
|
|
'!**/*.interface.ts',
|
|
'!**/main.ts',
|
|
'!**/*.dto.ts',
|
|
'!**/*.schema.ts',
|
|
'!**/index.ts',
|
|
'!**/migrate.ts',
|
|
'!**/connection.ts',
|
|
],
|
|
coverageDirectory: '../coverage',
|
|
testEnvironment: 'node',
|
|
// Handle ESM modules (nanoid, better-auth)
|
|
transformIgnorePatterns: ['node_modules/(?!(nanoid|better-auth)/)'],
|
|
moduleNameMapper: {
|
|
'^src/(.*)$': '<rootDir>/$1',
|
|
'^nanoid$': '<rootDir>/../test/__mocks__/nanoid.ts',
|
|
'^jose$': '<rootDir>/../test/__mocks__/jose.ts',
|
|
'^better-auth$': '<rootDir>/../test/__mocks__/better-auth.ts',
|
|
'^better-auth/types$': '<rootDir>/../test/__mocks__/better-auth.ts',
|
|
'^better-auth/plugins$': '<rootDir>/../test/__mocks__/better-auth-plugins.ts',
|
|
'^better-auth/plugins/(.*)$': '<rootDir>/../test/__mocks__/better-auth-plugins.ts',
|
|
'^better-auth/adapters/(.*)$': '<rootDir>/../test/__mocks__/better-auth-adapters.ts',
|
|
},
|
|
coverageThreshold: {
|
|
global: {
|
|
branches: 80,
|
|
functions: 80,
|
|
lines: 80,
|
|
statements: 80,
|
|
},
|
|
// Critical paths require 100% coverage
|
|
'./auth/auth.service.ts': {
|
|
branches: 100,
|
|
functions: 100,
|
|
lines: 100,
|
|
statements: 100,
|
|
},
|
|
'./credits/credits.service.ts': {
|
|
branches: 100,
|
|
functions: 100,
|
|
lines: 100,
|
|
statements: 100,
|
|
},
|
|
'./common/guards/jwt-auth.guard.ts': {
|
|
branches: 100,
|
|
functions: 100,
|
|
lines: 100,
|
|
statements: 100,
|
|
},
|
|
},
|
|
setupFilesAfterEnv: ['<rootDir>/../test/setup.ts'],
|
|
testTimeout: 10000,
|
|
};
|