UNPKG

@unito/integration-sdk

Version:

Integration SDK

106 lines (105 loc) 3.45 kB
import assert from 'node:assert/strict'; import { describe, it } from 'node:test'; import onFinish from '../../src/middlewares/finish.js'; import { RequestMetrics } from '../../src/resources/requestMetrics.js'; describe('finish middleware', () => { it('logs info', () => { let expected = ''; let urlCategory; let eventHandler = () => { }; const request = { method: 'GET', originalUrl: '/projects/123/tasks?limit=100', baseUrl: '', route: { path: '/projects/:id/tasks' }, }; const response = { on: (_event, func) => { eventHandler = func; }, locals: { requestMetrics: RequestMetrics.startRequest(), logger: { info: (_message, metadata) => { expected = 'works!'; urlCategory = metadata.http?.url_category; }, }, }, statusCode: 200, }; onFinish(request, response, () => { }); eventHandler(); assert.equal(expected, 'works!'); assert.equal(urlCategory, '/projects/:id/tasks'); }); it('logs error', () => { let expected = ''; let urlCategory; let eventHandler = () => { }; const request = { method: 'GET', originalUrl: '/', baseUrl: '' }; const response = { on: (_event, func) => { eventHandler = func; }, locals: { requestMetrics: RequestMetrics.startRequest(), logger: { error: (_message, metadata) => { expected = 'works!'; urlCategory = metadata.http?.url_category; }, }, }, statusCode: 500, }; onFinish(request, response, () => { }); eventHandler(); assert.equal(expected, 'works!'); assert.equal(urlCategory, 'unmatched'); }); it('health success', () => { let expected = ''; let eventHandler = () => { }; const request = { originalUrl: '/health' }; const response = { on: (_event, func) => { eventHandler = func; }, locals: { requestMetrics: RequestMetrics.startRequest(), logger: { info: (_message) => { expected = 'ohoh!'; }, }, }, statusCode: 200, }; onFinish(request, response, () => { }); eventHandler(); assert.equal(expected, ''); }); it('health failure', () => { let expected = ''; let eventHandler = () => { }; const request = { originalUrl: '/health' }; const response = { on: (_event, func) => { eventHandler = func; }, locals: { requestMetrics: RequestMetrics.startRequest(), logger: { error: (_message) => { expected = 'works!'; }, }, }, statusCode: 500, }; onFinish(request, response, () => { }); eventHandler(); assert.equal(expected, 'works!'); }); });