Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aefd57e57b | ||
| 2ca4eb47ac | |||
| a4fe30da22 | |||
|
|
abab7fd25e | ||
| 53dd26d2d9 | |||
| ab3da0336c |
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "flyer-crawler",
|
"name": "flyer-crawler",
|
||||||
"version": "0.1.10",
|
"version": "0.1.12",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "flyer-crawler",
|
"name": "flyer-crawler",
|
||||||
"version": "0.1.10",
|
"version": "0.1.12",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bull-board/api": "^6.14.2",
|
"@bull-board/api": "^6.14.2",
|
||||||
"@bull-board/express": "^6.14.2",
|
"@bull-board/express": "^6.14.2",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "flyer-crawler",
|
"name": "flyer-crawler",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.10",
|
"version": "0.1.12",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "concurrently \"npm:start:dev\" \"vite\"",
|
"dev": "concurrently \"npm:start:dev\" \"vite\"",
|
||||||
|
|||||||
@@ -109,7 +109,10 @@ describe('errorHandler Middleware', () => {
|
|||||||
it('should return a generic 500 error for a standard Error object', async () => {
|
it('should return a generic 500 error for a standard Error object', async () => {
|
||||||
const response = await supertest(app).get('/generic-error');
|
const response = await supertest(app).get('/generic-error');
|
||||||
expect(response.status).toBe(500);
|
expect(response.status).toBe(500);
|
||||||
expect(response.body).toEqual({ message: 'A generic server error occurred.' });
|
// In test/dev, we now expect a stack trace for 5xx errors.
|
||||||
|
expect(response.body.message).toBe('A generic server error occurred.');
|
||||||
|
expect(response.body.stack).toBeDefined();
|
||||||
|
expect(response.body.stack).toEqual(expect.any(String));
|
||||||
expect(mockLogger.error).toHaveBeenCalledWith(
|
expect(mockLogger.error).toHaveBeenCalledWith(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
err: expect.any(Error),
|
err: expect.any(Error),
|
||||||
@@ -232,7 +235,10 @@ describe('errorHandler Middleware', () => {
|
|||||||
const response = await supertest(app).get('/db-error-500');
|
const response = await supertest(app).get('/db-error-500');
|
||||||
|
|
||||||
expect(response.status).toBe(500);
|
expect(response.status).toBe(500);
|
||||||
expect(response.body).toEqual({ message: 'A database connection issue occurred.' });
|
// In test/dev, we now expect a stack trace for 5xx errors.
|
||||||
|
expect(response.body.message).toBe('A database connection issue occurred.');
|
||||||
|
expect(response.body.stack).toBeDefined();
|
||||||
|
expect(response.body.stack).toEqual(expect.any(String));
|
||||||
expect(mockLogger.error).toHaveBeenCalledWith(
|
expect(mockLogger.error).toHaveBeenCalledWith(
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
err: expect.any(DatabaseError),
|
err: expect.any(DatabaseError),
|
||||||
|
|||||||
@@ -63,6 +63,6 @@ export const errorHandler = (err: Error, req: Request, res: Response, next: Next
|
|||||||
return res.status(500).json({ message: 'An internal server error occurred.' });
|
return res.status(500).json({ message: 'An internal server error occurred.' });
|
||||||
}
|
}
|
||||||
|
|
||||||
// In development, send more details for easier debugging.
|
// In non-production environments (dev, test, etc.), send more details for easier debugging.
|
||||||
return res.status(500).json({ message: err.message, stack: err.stack });
|
return res.status(500).json({ message: err.message, stack: err.stack });
|
||||||
};
|
};
|
||||||
@@ -16,6 +16,7 @@ vi.mock('../services/db/deals.db', () => ({
|
|||||||
// Import the router and mocked repo AFTER all mocks are defined.
|
// Import the router and mocked repo AFTER all mocks are defined.
|
||||||
import dealsRouter from './deals.routes';
|
import dealsRouter from './deals.routes';
|
||||||
import { dealsRepo } from '../services/db/deals.db';
|
import { dealsRepo } from '../services/db/deals.db';
|
||||||
|
import { mockLogger } from '../tests/utils/mockLogger';
|
||||||
|
|
||||||
// Mock the logger to keep test output clean
|
// Mock the logger to keep test output clean
|
||||||
vi.mock('../services/logger.server', async () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ vi.mock('../services/db/index.db', () => ({
|
|||||||
// Import the router and mocked DB AFTER all mocks are defined.
|
// Import the router and mocked DB AFTER all mocks are defined.
|
||||||
import flyerRouter from './flyer.routes';
|
import flyerRouter from './flyer.routes';
|
||||||
import * as db from '../services/db/index.db';
|
import * as db from '../services/db/index.db';
|
||||||
|
import { mockLogger } from '../tests/utils/mockLogger';
|
||||||
|
|
||||||
// Mock the logger to keep test output clean
|
// Mock the logger to keep test output clean
|
||||||
vi.mock('../services/logger.server', async () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ vi.mock('../services/db/index.db', () => ({
|
|||||||
|
|
||||||
const mockedDb = db as Mocked<typeof db>;
|
const mockedDb = db as Mocked<typeof db>;
|
||||||
|
|
||||||
vi.mock('../services/logger.server', () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
// Use async import to avoid hoisting issues with mockLogger
|
// Use async import to avoid hoisting issues with mockLogger
|
||||||
// Note: We need to await the import inside the factory
|
// Note: We need to await the import inside the factory
|
||||||
logger: (await import('../tests/utils/mockLogger')).mockLogger,
|
logger: (await import('../tests/utils/mockLogger')).mockLogger,
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ vi.mock('../services/db/index.db', () => ({
|
|||||||
// Import the router and mocked DB AFTER all mocks are defined.
|
// Import the router and mocked DB AFTER all mocks are defined.
|
||||||
import personalizationRouter from './personalization.routes';
|
import personalizationRouter from './personalization.routes';
|
||||||
import * as db from '../services/db/index.db';
|
import * as db from '../services/db/index.db';
|
||||||
|
import { mockLogger } from '../tests/utils/mockLogger';
|
||||||
|
|
||||||
// Mock the logger to keep test output clean
|
// Mock the logger to keep test output clean
|
||||||
vi.mock('../services/logger.server', async () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ vi.mock('../services/db/index.db', () => ({
|
|||||||
// Import the router and mocked DB AFTER all mocks are defined.
|
// Import the router and mocked DB AFTER all mocks are defined.
|
||||||
import recipeRouter from './recipe.routes';
|
import recipeRouter from './recipe.routes';
|
||||||
import * as db from '../services/db/index.db';
|
import * as db from '../services/db/index.db';
|
||||||
|
import { mockLogger } from '../tests/utils/mockLogger';
|
||||||
|
|
||||||
// Mock the logger to keep test output clean
|
// Mock the logger to keep test output clean
|
||||||
vi.mock('../services/logger.server', async () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ vi.mock('../services/db/index.db', () => ({
|
|||||||
// Import the router and mocked DB AFTER all mocks are defined.
|
// Import the router and mocked DB AFTER all mocks are defined.
|
||||||
import statsRouter from './stats.routes';
|
import statsRouter from './stats.routes';
|
||||||
import * as db from '../services/db/index.db';
|
import * as db from '../services/db/index.db';
|
||||||
|
import { mockLogger } from '../tests/utils/mockLogger';
|
||||||
|
|
||||||
// Mock the logger to keep test output clean
|
// Mock the logger to keep test output clean
|
||||||
vi.mock('../services/logger.server', async () => ({
|
vi.mock('../services/logger.server', async () => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user