feat: isolate profanity filter with separate database

- Create dedicated ProfanityFilter class with isolated SQLite database
- Separate profanity.db from main application database to prevent SQLITE_MISUSE errors
- Add comprehensive custom word management (CRUD operations)
- Implement advanced profanity detection with leetspeak and pattern matching
- Add admin UI for managing custom profanity words
- Add extensive test suites for both profanity filter and API routes
- Update server.js to use isolated profanity filter
- Add proper database initialization and cleanup methods
- Support in-memory databases for testing

Breaking changes:
- Profanity filter now uses separate database file
- Updated admin API endpoints for profanity management
- Enhanced profanity detection capabilities
This commit is contained in:
Deco Vander 2025-07-04 00:03:24 -04:00
parent d19cd2766c
commit c7f39e4939
15 changed files with 5365 additions and 257 deletions

17
jest.config.js Normal file
View file

@ -0,0 +1,17 @@
module.exports = {
testEnvironment: 'node',
collectCoverageFrom: [
'**/*.js',
'!**/node_modules/**',
'!**/coverage/**',
'!**/public/**',
'!jest.config.js',
'!server.js' // Exclude main server file as it's integration-focused
],
testMatch: [
'**/tests/**/*.test.js',
'**/tests/**/*.spec.js'
],
verbose: true,
setupFilesAfterEnv: ['<rootDir>/tests/setup.js']
};