- replace bearer auth with session+CSRF flow and add admin user directory - update frontend moderation flow, force password change gate, and new CLI - refresh changelog/docs/feature plan + ensure swagger dev experience
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
/**
|
|
* Setup file - Runs before EACH test file
|
|
* Initialize server singleton here
|
|
*/
|
|
|
|
// Ensure test environment variables are set before any application modules load
|
|
process.env.NODE_ENV = process.env.NODE_ENV || 'test';
|
|
process.env.PORT = process.env.PORT || 5001;
|
|
process.env.ADMIN_SESSION_SECRET = process.env.ADMIN_SESSION_SECRET || 'test-session-secret';
|
|
|
|
const Server = require('../src/server');
|
|
|
|
// Singleton pattern - initialize only once
|
|
let serverInstance = null;
|
|
let app = null;
|
|
|
|
async function initializeTestServer() {
|
|
if (!app) {
|
|
console.log('🔧 Initializing test server (one-time)...');
|
|
|
|
serverInstance = new Server(5001);
|
|
app = await serverInstance.initializeApp();
|
|
|
|
global.__TEST_SERVER__ = serverInstance;
|
|
global.__TEST_APP__ = app;
|
|
|
|
console.log('✅ Test server ready');
|
|
}
|
|
return app;
|
|
}
|
|
|
|
// Initialize before all tests
|
|
beforeAll(async () => {
|
|
await initializeTestServer();
|
|
});
|
|
|
|
// Test timeout
|
|
jest.setTimeout(10000);
|
|
|
|
// Suppress logs during tests
|
|
global.console = {
|
|
...console,
|
|
log: jest.fn(),
|
|
info: jest.fn(),
|
|
debug: jest.fn(),
|
|
error: console.error,
|
|
warn: console.warn,
|
|
};
|