Skip to content

Commit 831c68c

Browse files
committed
added a test for resolution of api calls
1 parent 1e91f4b commit 831c68c

File tree

5 files changed

+89
-16
lines changed

5 files changed

+89
-16
lines changed

backend/src/index.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,6 @@ app.get("/health", async (req, res) => {
121121
});
122122

123123
app.get("/api/health", async (req, res) => {
124-
// Temporarily bypassed for debugging startup issues
125-
console.log('HEALTH CHECK ENDPOINT WAS HIT');
126-
res.status(200).json({ status: "ok" });
127-
/*
128124
try {
129125
await initializeServices();
130126
const healthStatus = await healthCheckService.performEnhancedHealthCheck();
@@ -138,7 +134,6 @@ app.get("/api/health", async (req, res) => {
138134
timestamp: new Date().toISOString(),
139135
});
140136
}
141-
*/
142137
});
143138

144139
// Database wake-up endpoint

backend/src/routes/likes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ router.get('/:postId/check', authenticateToken, likeController.isLiked);
1212

1313
// Public routes (no authentication required)
1414
router.get('/:postId', getLikesValidation, likeController.getLikes);
15-
router.get('/:postId/count', likeController.getLikeCount);
15+
router.get('/:postId/stats', likeController.getLikeCount);
1616

1717
export default router;

backend/src/routes/worryResolution.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { authenticateToken } from '../middleware/auth';
1313
const router = Router();
1414
const worryResolutionController = new WorryResolutionController();
1515

16+
router.get('/test', (req, res) => res.send('Worry resolution route is working!'));
17+
1618
// Public routes (no authentication required)
1719
router.get('/stories', getPublicResolutionStoriesValidation, worryResolutionController.getPublicResolutionStories);
1820

backend/src/services/databaseRecovery.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,6 @@ export class DatabaseRecoveryService {
304304
logger.info('Creating database connection');
305305

306306
try {
307-
console.log('--- DATABASE_URL FROM ENV ---');
308-
console.log(process.env.DATABASE_URL);
309-
console.log('-----------------------------');
310307
this.prismaClient = new PrismaClient({
311308
log: process.env.NODE_ENV === 'development' ? ['query', 'info', 'warn', 'error'] : ['error'],
312309
datasources: {

backend/src/services/healthCheck.ts

Lines changed: 86 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export class HealthCheckService {
163163
});
164164

165165
// Log warnings for concerning metrics
166-
if (metrics.memoryUsage.usagePercent > 80) {
166+
if (metrics.memoryUsage.usagePercent > 95) {
167167
logger.warn('High memory usage detected', {
168168
correlationId,
169169
memoryUsage: metrics.memoryUsage,
@@ -300,12 +300,91 @@ export class HealthCheckService {
300300
}
301301

302302
private async checkEnhancedMemory(): Promise<HealthCheckResult> {
303-
// Temporarily bypassed for debugging startup issues
304-
return {
305-
status: 'pass',
306-
message: 'Memory check bypassed for debugging',
307-
lastChecked: new Date().toISOString(),
308-
};
303+
try {
304+
const memoryHealthMetrics = this.memoryManager.getHealthMetrics();
305+
const memoryMetrics = this.getMemoryMetrics();
306+
307+
// Use memory manager's status determination
308+
const status = memoryHealthMetrics.status;
309+
310+
if (status === 'emergency') {
311+
// Memory manager will handle emergency cleanup
312+
await this.memoryManager.checkMemoryPressure();
313+
314+
return {
315+
status: 'fail',
316+
message: 'Memory usage critical - emergency cleanup triggered',
317+
lastChecked: new Date().toISOString(),
318+
details: {
319+
...memoryMetrics,
320+
memoryManagerStatus: status,
321+
trend: memoryHealthMetrics.trend,
322+
leakDetection: memoryHealthMetrics.leakDetection,
323+
recentAlerts: memoryHealthMetrics.recentAlerts?.length || 0,
324+
},
325+
};
326+
}
327+
328+
if (status === 'critical') {
329+
return {
330+
status: 'fail',
331+
message: 'Memory usage critical',
332+
lastChecked: new Date().toISOString(),
333+
details: {
334+
...memoryMetrics,
335+
memoryManagerStatus: status,
336+
trend: memoryHealthMetrics.trend,
337+
recommendations: memoryHealthMetrics.recommendations,
338+
},
339+
};
340+
}
341+
342+
if (status === 'warning') {
343+
return {
344+
status: 'warn',
345+
message: 'Memory usage high',
346+
lastChecked: new Date().toISOString(),
347+
details: {
348+
...memoryMetrics,
349+
memoryManagerStatus: status,
350+
trend: memoryHealthMetrics.trend,
351+
},
352+
};
353+
}
354+
355+
if (memoryHealthMetrics.leakDetection.detected) {
356+
return {
357+
status: 'warn',
358+
message: `Potential memory leak detected (${memoryHealthMetrics.leakDetection.confidence}% confidence)`,
359+
lastChecked: new Date().toISOString(),
360+
details: {
361+
...memoryMetrics,
362+
memoryManagerStatus: status,
363+
leakDetection: memoryHealthMetrics.leakDetection,
364+
},
365+
};
366+
}
367+
368+
return {
369+
status: 'pass',
370+
message: 'Memory usage normal',
371+
lastChecked: new Date().toISOString(),
372+
details: {
373+
...memoryMetrics,
374+
memoryManagerStatus: status,
375+
trend: memoryHealthMetrics.trend,
376+
gcStats: memoryHealthMetrics.gcStats,
377+
},
378+
};
379+
} catch (error) {
380+
logger.error('Enhanced memory health check failed', error);
381+
return {
382+
status: 'fail',
383+
message: 'Memory check failed',
384+
lastChecked: new Date().toISOString(),
385+
details: error instanceof Error ? error.message : 'Unknown error',
386+
};
387+
}
309388
}
310389

311390
private async checkSchedulers(): Promise<HealthCheckResult> {

0 commit comments

Comments
 (0)