• Kelvin Fichter's avatar
    fix(ci): run tests for common-ts · 3c580424
    Kelvin Fichter authored
    Tests for common-ts were not being executed in CI because the command
    being triggered was "yarn test:coverage" and this command was a noop for
    common-ts. Also fixes a bug in the tests that wasn't caught by CI
    because of this.
    3c580424
metrics.spec.ts 1.22 KB
import request from 'supertest'
// Setup
import chai = require('chai')
const expect = chai.expect

import { Logger, LegacyMetrics, createMetricsServer } from '../src'

describe('Metrics', () => {
  it('shoud serve metrics', async () => {
    const metrics = new LegacyMetrics({
      prefix: 'test_metrics',
    })
    const registry = metrics.registry
    const logger = new Logger({ name: 'test_logger' })

    const server = await createMetricsServer({
      logger,
      registry,
      port: 42069,
    })

    try {
      // Create two metrics for testing
      const counter = new metrics.client.Counter({
        name: 'counter',
        help: 'counter help',
        registers: [registry],
      })
      const gauge = new metrics.client.Gauge({
        name: 'gauge',
        help: 'gauge help',
        registers: [registry],
      })

      counter.inc()
      counter.inc()
      gauge.set(100)

      // Verify that the registered metrics are served at `/`
      const response = await request(server).get('/metrics').send()
      expect(response.status).eq(200)
      expect(response.text).match(/counter 2/)
      expect(response.text).match(/gauge 100/)
    } finally {
      server.close()
      registry.clear()
    }
  })
})