import { test } from 'node:test'; import assert from 'node:assert/strict'; import { createRequestMonitor } from './request-monitor.js'; test('request monitor records route latency, status errors, and current process health', async () => { let t = 100; const monitor = createRequestMonitor({ now: () => t, snapshotIntervalMs: 0, adapters: { media: () => ({ queued: 2 }) } }); const middleware = monitor.middleware(); const ctx = (path, status) => ({ req: { path }, res: { status } }); await middleware(ctx('/api/media/abc/status', 200), async () => { t += 8; }); await middleware(ctx('/api/media/xyz/status', 503), async () => { t += 12; }); const sample = await monitor.sample(); assert.equal(sample.routes['/api/media/:id/status'].requests, 2); assert.equal(sample.routes['/api/media/:id/status'].errors, 1); assert.equal(sample.routes['/api/media/:id/status'].p50, 8); assert.equal(sample.media.queued, 2); assert.ok(sample.rssBytes > 0); monitor.close(); });