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

This commit is contained in:
2025-12-11 18:23:59 -08:00
parent 5f1901b93d
commit 0bc65574c2
22 changed files with 112 additions and 676 deletions

View File

@@ -7,7 +7,7 @@ import * as bcrypt from 'bcrypt';
import userRouter from './user.routes';
import { createMockUserProfile, createMockMasterGroceryItem, createMockShoppingList, createMockShoppingListItem, createMockRecipe } from '../tests/utils/mockFactories';
import { Appliance, Notification } from '../types';
import { ForeignKeyConstraintError } from '../services/db/errors.db';
import { ForeignKeyConstraintError, NotFoundError } from '../services/db/errors.db';
import { errorHandler } from '../middleware/errorHandler';
// 1. Mock the Service Layer directly.
@@ -143,10 +143,10 @@ describe('User Routes (/api/users)', () => {
});
it('should return 404 if profile is not found in DB', async () => {
vi.mocked(db.userRepo.findUserProfileById).mockResolvedValue(undefined);
vi.mocked(db.userRepo.findUserProfileById).mockRejectedValue(new NotFoundError('Profile not found for this user.'));
const response = await supertest(app).get('/api/users/profile');
expect(response.status).toBe(404);
expect(response.body.message).toBe('Profile not found for this user.');
expect(response.body.message).toContain('Profile not found');
});
it('should return 500 if the database call fails', async () => {
@@ -888,10 +888,10 @@ describe('User Routes (/api/users)', () => {
});
it('GET /shopping-lists/:listId should return 404 if list is not found', async () => {
vi.mocked(db.shoppingRepo.getShoppingListById).mockResolvedValue(undefined);
vi.mocked(db.shoppingRepo.getShoppingListById).mockRejectedValue(new NotFoundError('Shopping list not found'));
const response = await supertest(app).get('/api/users/shopping-lists/999');
expect(response.status).toBe(404);
expect(response.body.message).toContain('not found');
expect(response.body.message).toBe('Shopping list not found');
});
});
});