@unito/integration-sdk
Version:
Integration SDK
27 lines (24 loc) • 1.06 kB
text/typescript
import express from 'express';
import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import start from '../../src/middlewares/start.js';
import { RequestMetrics } from '../../src/resources/requestMetrics.js';
describe('start middleware', () => {
it('initializes request metrics on locals', () => {
const request = {} as express.Request;
const response = { locals: {} } as express.Response;
start(request, response, () => {});
assert.ok(response.locals.requestMetrics instanceof RequestMetrics);
assert.match(response.locals.requestId, /^[0-9a-f-]{36}$/);
});
it('records request start time in metrics', () => {
const request = {} as express.Request;
const response = { locals: {} } as express.Response;
const before = process.hrtime.bigint();
start(request, response, () => {});
const result = response.locals.requestMetrics.endRequest();
const after = process.hrtime.bigint();
assert.ok(result.durationNs >= 0n);
assert.ok(result.durationNs <= after - before);
});
});