import { describe, it, before, after } from 'mocha' import { expect } from 'chai' import { By } from 'selenium-webdriver' import { takeScreenshotOnFailure, } from '../../lib/elements.js' let metrics = [ {'name': 'olivetin_actions_requested_count', 'type': 'counter', 'desc': 'The actions requested count'}, {'name': 'olivetin_config_action_count', 'type': 'gauge', 'desc': 'The number of actions in the config file'}, {'name': 'olivetin_config_reloaded_count', 'type': 'counter', 'desc': 'The number of times the config has been reloaded'}, ] describe('config: prometheus', function () { before(async function () { await runner.start('prometheus') }) after(async () => { await runner.stop() }) afterEach(function () { takeScreenshotOnFailure(this.currentTest, webdriver); }); it('Metrics are available with correct types', async () => { await webdriver.get(runner.metricsUrl()) const prometheusOutput = await webdriver.findElement(By.tagName('pre')).getText() expect(prometheusOutput).to.not.be.null metrics.forEach(({name, type, desc}) => { const metaLines = `# HELP ${name} ${desc}\n` + `# TYPE ${name} ${type}\n` expect(prometheusOutput).to.match(new RegExp(metaLines)) }) }) })