unit test fixes + error refactor
All checks were successful
Deploy to Test Environment / deploy-to-test (push) Successful in 10m20s

This commit is contained in:
2025-12-11 14:16:25 -08:00
parent d6f0b446a5
commit 5f1901b93d
28 changed files with 704 additions and 260 deletions

View File

@@ -4,6 +4,7 @@ import supertest from 'supertest';
import express, { Request, Response, NextFunction } from 'express';
import personalizationRouter from './personalization.routes';
import { createMockMasterGroceryItem, createMockDietaryRestriction, createMockAppliance } from '../tests/utils/mockFactories';
import { errorHandler } from '../middleware/errorHandler';
// 1. Mock the Service Layer directly.
vi.mock('../services/db/index.db', () => ({
@@ -29,11 +30,7 @@ const app = express();
app.use(express.json());
// Mount the router under its designated base path
app.use('/api/personalization', personalizationRouter);
// Add a generic error handler to catch errors passed via next()
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
res.status(500).json({ message: err.message || 'Internal Server Error' });
});
app.use(errorHandler);
describe('Personalization Routes (/api/personalization)', () => {
beforeEach(() => {
@@ -55,12 +52,14 @@ describe('Personalization Routes (/api/personalization)', () => {
vi.mocked(db.personalizationRepo.getAllMasterItems).mockRejectedValue(new Error('DB Error'));
const response = await supertest(app).get('/api/personalization/master-items');
expect(response.status).toBe(500);
expect(response.body.message).toBe('DB Error');
});
it('should return 500 if the database call fails for dietary restrictions', async () => {
vi.mocked(db.personalizationRepo.getDietaryRestrictions).mockRejectedValue(new Error('DB Error'));
const response = await supertest(app).get('/api/personalization/dietary-restrictions');
expect(response.status).toBe(500);
expect(response.body.message).toBe('DB Error');
});
});
@@ -79,6 +78,7 @@ describe('Personalization Routes (/api/personalization)', () => {
vi.mocked(db.personalizationRepo.getDietaryRestrictions).mockRejectedValue(new Error('DB Error'));
const response = await supertest(app).get('/api/personalization/dietary-restrictions');
expect(response.status).toBe(500);
expect(response.body.message).toBe('DB Error');
});
});
@@ -97,6 +97,7 @@ describe('Personalization Routes (/api/personalization)', () => {
vi.mocked(db.personalizationRepo.getAppliances).mockRejectedValue(new Error('DB Error'));
const response = await supertest(app).get('/api/personalization/appliances');
expect(response.status).toBe(500);
expect(response.body.message).toBe('DB Error');
});
});
});