This module is a memory based consumer for metrics streams to be used in tests. The purpose of the module is to make writing tests and asserting metrics easier. It takes a metric stream generated by @metrics/client and makes the collected metrics available as an array.
@metrics/client
Below is a sample test showing how this could be used:
const assert = require("node:assert");
const { test } = require("node:test");
const MetricsClient = require("@metrics/client");
const TestConsumer = require("@metrics/test-consumer");
test("some test case", async () => {
// Pass in the metrics client you want to consume.
const metrics = new MetricsClient();
const testHelper = new TestConsumer(metrics);
// Sets up the consumer to capture events.
testHelper.start();
// 👋 Your code which produces some kind of metric goes here.
// Ends the streams, now we can get the result.
testHelper.stop();
const result = await testHelper.getResults();
const metric = result.find((m) => m.name === "some_counter");
assert.ok(metric, "Expected to find metric some_counter");
assert.equal(metric.value, 2);
});
Takes in the @metrics/client to collect metrics from.
Creates a readable stream which listens for metrics produced by the client.
Ends the stream setup for the client, returns a Promise which resolves to an array with the metrics consumed.
Returns a promise which resolves to an array containing collected [@metrics/metrics](https://metrics-js.github.io/reference/metric/)
objects.
Utility object with functions for creating mock Metric
objects, has the functions .timer
and .counter
.