UNPKG

realm-object-server

Version:

Realm Object Server

85 lines 3.54 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const express = require("express"); const http = require("http"); const _1 = require("."); describe("Prometheus Stats Storage", () => { let mockedPrometheusApp; let server; let serverUrl; let storage; beforeEach(() => __awaiter(this, void 0, void 0, function* () { mockedPrometheusApp = express(); server = http.createServer(mockedPrometheusApp).listen(); serverUrl = `http://localhost:${server.address().port}`; storage = new _1.PrometheusStatsStorage({ url: serverUrl }); })); afterEach(() => { if (server) { server.close(); } }); const metrics = [{ "metric": { "__name__": "test-metric", "job": "prometheus", "instance": "localhost:9090" }, "value": [1435781451.781, "1"], }, { "metric": { "__name__": "test-metric", "job": "node", "instance": "localhost:9100" }, "value": [1435781451.781, "0"], }]; it("can query for stats", () => __awaiter(this, void 0, void 0, function* () { mockedPrometheusApp.get("/api/v1/query", (req, res) => { chai_1.expect(req.query).to.deep.equal({ query: "test-metric" }); res.json({ status: "success", data: { resultType: "vector", result: metrics, }, }); }); const instantValues = yield storage.getInstantValues("test-metric"); chai_1.expect(instantValues).to.deep.equal([ { value: 1, labels: { "__name__": "test-metric", job: "prometheus", instance: "localhost:9090" } }, { value: 0, labels: { "__name__": "test-metric", job: "node", instance: "localhost:9100" } }, ]); })); it("can query for stats (filtered by labels)", () => __awaiter(this, void 0, void 0, function* () { mockedPrometheusApp.get("/api/v1/query", (req, res) => { chai_1.expect(req.query).to.deep.equal({ query: 'test-metric{job="prometheus",instance="localhost:9090"}', }); res.json({ status: "success", data: { resultType: "vector", result: [metrics[0]], }, }); }); const instantValues = yield storage.getInstantValues("test-metric", { job: "prometheus", instance: "localhost:9090", }); chai_1.expect(instantValues).to.deep.equal([ { value: 1, labels: { "__name__": "test-metric", job: "prometheus", instance: "localhost:9090" } }, ]); })); }); //# sourceMappingURL=PrometheusStatsStorage.spec.js.map