unit test repairs
Some checks failed
Deploy to Test Environment / deploy-to-test (push) Failing after 1m17s
Some checks failed
Deploy to Test Environment / deploy-to-test (push) Failing after 1m17s
This commit is contained in:
@@ -32,7 +32,7 @@ vi.mock('../lib/queue', () => ({
|
||||
cleanupQueue: {},
|
||||
}));
|
||||
|
||||
const { mockedDb } = vi.hoisted(() => {
|
||||
const { mockedDb, mockedBrandService } = vi.hoisted(() => {
|
||||
return {
|
||||
mockedDb: {
|
||||
adminRepo: {
|
||||
@@ -59,6 +59,9 @@ const { mockedDb } = vi.hoisted(() => {
|
||||
deleteUserById: vi.fn(),
|
||||
},
|
||||
},
|
||||
mockedBrandService: {
|
||||
updateBrandLogo: vi.fn(),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
@@ -89,6 +92,26 @@ vi.mock('node:fs/promises', () => ({
|
||||
vi.mock('../services/backgroundJobService');
|
||||
vi.mock('../services/geocodingService.server');
|
||||
vi.mock('../services/queueService.server');
|
||||
vi.mock('../services/queues.server');
|
||||
vi.mock('../services/workers.server');
|
||||
vi.mock('../services/monitoringService.server');
|
||||
vi.mock('../services/cacheService.server');
|
||||
vi.mock('../services/userService');
|
||||
vi.mock('../services/brandService', () => ({
|
||||
brandService: mockedBrandService,
|
||||
}));
|
||||
vi.mock('../services/receiptService.server');
|
||||
vi.mock('../services/aiService.server');
|
||||
vi.mock('../config/env', () => ({
|
||||
config: {
|
||||
database: { host: 'localhost', port: 5432, user: 'test', password: 'test', name: 'test' },
|
||||
redis: { url: 'redis://localhost:6379' },
|
||||
auth: { jwtSecret: 'test-secret' },
|
||||
server: { port: 3000, host: 'localhost' },
|
||||
},
|
||||
isAiConfigured: vi.fn().mockReturnValue(false),
|
||||
parseConfig: vi.fn(),
|
||||
}));
|
||||
vi.mock('@bull-board/api'); // Keep this mock for the API part
|
||||
vi.mock('@bull-board/api/bullMQAdapter'); // Keep this mock for the adapter
|
||||
|
||||
@@ -103,13 +126,17 @@ vi.mock('@bull-board/express', () => ({
|
||||
}));
|
||||
|
||||
// Mock the logger
|
||||
vi.mock('../services/logger.server', async () => ({
|
||||
// Use async import to avoid hoisting issues with mockLogger
|
||||
logger: (await import('../tests/utils/mockLogger')).mockLogger,
|
||||
}));
|
||||
vi.mock('../services/logger.server', async () => {
|
||||
const { mockLogger, createMockLogger } = await import('../tests/utils/mockLogger');
|
||||
return {
|
||||
logger: mockLogger,
|
||||
createScopedLogger: vi.fn(() => createMockLogger()),
|
||||
};
|
||||
});
|
||||
|
||||
// Mock the passport middleware
|
||||
vi.mock('./passport.routes', () => ({
|
||||
// Note: admin.routes.ts imports from '../config/passport', so we mock that path
|
||||
vi.mock('../config/passport', () => ({
|
||||
default: {
|
||||
authenticate: vi.fn(() => (req: Request, res: Response, next: NextFunction) => {
|
||||
if (!req.user) return res.status(401).json({ message: 'Unauthorized' });
|
||||
@@ -314,22 +341,23 @@ describe('Admin Content Management Routes (/api/admin)', () => {
|
||||
|
||||
it('POST /brands/:id/logo should upload a logo and update the brand', async () => {
|
||||
const brandId = 55;
|
||||
vi.mocked(mockedDb.adminRepo.updateBrandLogo).mockResolvedValue(undefined);
|
||||
const mockLogoUrl = '/flyer-images/brand-logos/test-logo.png';
|
||||
vi.mocked(mockedBrandService.updateBrandLogo).mockResolvedValue(mockLogoUrl);
|
||||
const response = await supertest(app)
|
||||
.post(`/api/admin/brands/${brandId}/logo`)
|
||||
.attach('logoImage', Buffer.from('dummy-logo-content'), 'test-logo.png');
|
||||
expect(response.status).toBe(200);
|
||||
expect(response.body.data.message).toBe('Brand logo updated successfully.');
|
||||
expect(vi.mocked(mockedDb.adminRepo.updateBrandLogo)).toHaveBeenCalledWith(
|
||||
expect(vi.mocked(mockedBrandService.updateBrandLogo)).toHaveBeenCalledWith(
|
||||
brandId,
|
||||
expect.stringContaining('/flyer-images/'),
|
||||
expect.objectContaining({ fieldname: 'logoImage' }),
|
||||
expect.anything(),
|
||||
);
|
||||
});
|
||||
|
||||
it('POST /brands/:id/logo should return 500 on DB error', async () => {
|
||||
const brandId = 55;
|
||||
vi.mocked(mockedDb.adminRepo.updateBrandLogo).mockRejectedValue(new Error('DB Error'));
|
||||
vi.mocked(mockedBrandService.updateBrandLogo).mockRejectedValue(new Error('DB Error'));
|
||||
const response = await supertest(app)
|
||||
.post(`/api/admin/brands/${brandId}/logo`)
|
||||
.attach('logoImage', Buffer.from('dummy-logo-content'), 'test-logo.png');
|
||||
@@ -347,7 +375,7 @@ describe('Admin Content Management Routes (/api/admin)', () => {
|
||||
it('should clean up the uploaded file if updating the brand logo fails', async () => {
|
||||
const brandId = 55;
|
||||
const dbError = new Error('DB Connection Failed');
|
||||
vi.mocked(mockedDb.adminRepo.updateBrandLogo).mockRejectedValue(dbError);
|
||||
vi.mocked(mockedBrandService.updateBrandLogo).mockRejectedValue(dbError);
|
||||
|
||||
const response = await supertest(app)
|
||||
.post(`/api/admin/brands/${brandId}/logo`)
|
||||
|
||||
Reference in New Issue
Block a user