import { MetricsService } from './metrics.service'; describe('MetricsService', () => { it('exports bounded API process and HTTP metrics without raw identifiers', () => { const service = new MetricsService(); const startedAt = service.beginRequest(); service.finishRequest(startedAt, 'GET', '/api/admin/tenants/:id', 200); const inboundStartedAt = service.beginCmppInboundStage(); service.finishCmppInboundStage(inboundStartedAt, 'application_lookup', 'success'); const output = service.render(); expect(output).toContain('cmpp_api_process_resident_memory_bytes'); expect(output).toContain('cmpp_api_http_requests_total{method="GET",route="/api/admin/tenants/:id",status="200"} 1'); expect(output).toContain('cmpp_api_http_request_duration_seconds_bucket'); expect(output).toContain('cmpp_api_cmpp_inbound_stage_duration_seconds_count{stage="application_lookup",result="success"} 1'); expect(output).not.toContain('phone_number'); service.onModuleDestroy(); }); });