unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
101 lines • 2.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const collapseHourlyMetrics_1 = require("./collapseHourlyMetrics");
const date_fns_1 = require("date-fns");
test('collapseHourlyMetrics', () => {
const timestamp = (0, date_fns_1.startOfHour)(new Date());
const metricAX1 = {
featureName: 'a',
appName: 'x',
environment: 'x',
timestamp: (0, date_fns_1.addMinutes)(timestamp, 1),
yes: 1,
no: 11,
};
const metricAX2 = {
featureName: 'a',
appName: 'x',
environment: 'x',
timestamp: (0, date_fns_1.addMinutes)(timestamp, 2),
yes: 2,
no: 12,
};
const metricBX = {
featureName: 'b',
appName: 'x',
environment: 'x',
timestamp: (0, date_fns_1.addMinutes)(timestamp, 3),
yes: 101,
no: 1001,
};
const metricBY = {
featureName: 'b',
appName: 'y',
environment: 'y',
timestamp: (0, date_fns_1.addMinutes)(timestamp, 4),
yes: 102,
no: 1002,
};
expect((0, collapseHourlyMetrics_1.collapseHourlyMetrics)([metricAX1, metricAX2, metricBX, metricBY])).toEqual([
{
featureName: 'a',
appName: 'x',
environment: 'x',
timestamp,
yes: 3,
no: 23,
},
{
featureName: 'b',
appName: 'x',
environment: 'x',
timestamp,
yes: 101,
no: 1001,
},
{
featureName: 'b',
appName: 'y',
environment: 'y',
timestamp,
yes: 102,
no: 1002,
},
]);
expect((0, collapseHourlyMetrics_1.collapseHourlyMetrics)([
metricAX1,
metricAX1,
metricAX2,
metricAX2,
metricBX,
metricBX,
metricBY,
metricBY,
])).toEqual([
{
featureName: 'a',
appName: 'x',
environment: 'x',
timestamp,
yes: 6,
no: 46,
},
{
featureName: 'b',
appName: 'x',
environment: 'x',
timestamp,
yes: 202,
no: 2002,
},
{
featureName: 'b',
appName: 'y',
environment: 'y',
timestamp,
yes: 204,
no: 2004,
},
]);
});
//# sourceMappingURL=collapseHourlyMetrics.test.js.map