feat: log unhandled errors and pretty dev output (WealthLedger/backend#120) (#126)
feat: log unhandled errors and pretty dev output (#120)
This commit was merged in pull request #126.
This commit is contained in:
+34
-13
@@ -32,6 +32,7 @@ describe('Authentication (e2e)', () => {
|
||||
pinoHttp: {
|
||||
...loggingOptions(config),
|
||||
level: 'info',
|
||||
transport: undefined,
|
||||
stream: { write: (line: string) => logs.push(JSON.parse(line) as Record<string, unknown>) },
|
||||
},
|
||||
assignResponse: true,
|
||||
@@ -539,7 +540,14 @@ describe('Authentication (e2e)', () => {
|
||||
'X-Request-ID',
|
||||
);
|
||||
expect(logs.filter((entry) => entry.requestId === response.headers['x-request-id'])).toEqual([
|
||||
expect.objectContaining({ level: 40, message: 'http.request.completed', status: 401, code: 'UNAUTHORIZED' }),
|
||||
expect.objectContaining({
|
||||
level: 40,
|
||||
message: 'http.request.completed',
|
||||
method: 'GET',
|
||||
route: '/api/v1/auth/me',
|
||||
status: 401,
|
||||
code: 'UNAUTHORIZED',
|
||||
}),
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -551,7 +559,7 @@ describe('Authentication (e2e)', () => {
|
||||
new Error('operation failed\npassword: SYNTHETIC_AUDIT_SECRET'),
|
||||
);
|
||||
|
||||
const response = await request(app.getHttpServer())
|
||||
await request(app.getHttpServer())
|
||||
.post('/api/v1/auth/login')
|
||||
.set('X-Request-ID', clientRequestId)
|
||||
.send({ email: 'user@example.com', password: 'a secure password' })
|
||||
@@ -561,17 +569,30 @@ describe('Authentication (e2e)', () => {
|
||||
expect(body).toEqual({ status: 500, code: 'INTERNAL_SERVER_ERROR' }),
|
||||
);
|
||||
|
||||
const completed = logs.filter((entry) => entry.requestId === response.headers['x-request-id']);
|
||||
expect(completed).toEqual([
|
||||
expect.objectContaining({
|
||||
requestId: response.headers['x-request-id'],
|
||||
clientRequestId,
|
||||
status: 500,
|
||||
code: 'INTERNAL_SERVER_ERROR',
|
||||
level: 50,
|
||||
message: 'http.request.completed',
|
||||
}),
|
||||
]);
|
||||
expect(logs).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
method: 'POST',
|
||||
route: '/api/v1/auth/login',
|
||||
status: 500,
|
||||
code: 'INTERNAL_SERVER_ERROR',
|
||||
level: 50,
|
||||
message: 'http.request.completed',
|
||||
}),
|
||||
]),
|
||||
);
|
||||
expect(logs).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
clientRequestId,
|
||||
code: 'INTERNAL_SERVER_ERROR',
|
||||
level: 50,
|
||||
message: 'http.request.unhandled',
|
||||
errorName: 'Error',
|
||||
errorStack: expect.stringContaining(' at ') as unknown,
|
||||
}),
|
||||
]),
|
||||
);
|
||||
expect(JSON.stringify(logs)).not.toContain(
|
||||
'SYNTHETIC_AUDIT_SECRET',
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user