mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-01 07:09:43 -06:00
68 lines
2.1 KiB
JavaScript
Executable File
68 lines
2.1 KiB
JavaScript
Executable File
import { NormalizeData, calculatePercentile } from "../../utils/dataUtils.js";
|
|
import sinon from "sinon";
|
|
|
|
describe("NormalizeData", function () {
|
|
it("should normalize response times when checks length is greater than 1", function () {
|
|
const checks = [
|
|
{ responseTime: 20, _doc: { id: 1 } },
|
|
{ responseTime: 40, _doc: { id: 2 } },
|
|
{ responseTime: 60, _doc: { id: 3 } },
|
|
];
|
|
const rangeMin = 1;
|
|
const rangeMax = 100;
|
|
|
|
const result = NormalizeData(checks, rangeMin, rangeMax);
|
|
|
|
expect(result).to.be.an("array");
|
|
expect(result).to.have.lengthOf(3);
|
|
result.forEach((check) => {
|
|
expect(check).to.have.property("responseTime").that.is.a("number");
|
|
expect(check).to.have.property("originalResponseTime").that.is.a("number");
|
|
});
|
|
});
|
|
|
|
it("should return checks with original response times when checks length is 1", function () {
|
|
const checks = [{ responseTime: 20, _doc: { id: 1 } }];
|
|
const rangeMin = 1;
|
|
const rangeMax = 100;
|
|
|
|
const result = NormalizeData(checks, rangeMin, rangeMax);
|
|
expect(result).to.be.an("array");
|
|
expect(result).to.have.lengthOf(1);
|
|
expect(result[0]).to.have.property("originalResponseTime", 20);
|
|
});
|
|
|
|
it("should handle edge cases with extreme response times", function () {
|
|
const checks = [
|
|
{ responseTime: 5, _doc: { id: 1 } },
|
|
{ responseTime: 95, _doc: { id: 2 } },
|
|
];
|
|
const rangeMin = 1;
|
|
const rangeMax = 100;
|
|
|
|
const result = NormalizeData(checks, rangeMin, rangeMax);
|
|
|
|
expect(result).to.be.an("array");
|
|
expect(result).to.have.lengthOf(2);
|
|
expect(result[0]).to.have.property("responseTime").that.is.at.least(rangeMin);
|
|
expect(result[1]).to.have.property("responseTime").that.is.at.most(rangeMax);
|
|
});
|
|
});
|
|
|
|
describe("calculatePercentile", function () {
|
|
it("should return the lower value when upper is greater than or equal to the length of the sorted array", function () {
|
|
const checks = [
|
|
{ responseTime: 10 },
|
|
{ responseTime: 20 },
|
|
{ responseTime: 30 },
|
|
{ responseTime: 40 },
|
|
{ responseTime: 50 },
|
|
];
|
|
|
|
const percentile = 100;
|
|
const result = calculatePercentile(checks, percentile);
|
|
const expected = 50;
|
|
expect(result).to.equal(expected);
|
|
});
|
|
});
|