@netdata/charts
Version:
Netdata frontend SDK and chart utilities
82 lines • 2.95 kB
JavaScript
import React from "react";
import { screen } from "@testing-library/react";
import "@testing-library/jest-dom";
import { makeTestChart, renderWithChart } from "@jest/testUtilities";
import StatValue from "./statValue";
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
var makeUnitChart = function makeUnitChart(unit) {
var _makeTestChart = makeTestChart({
attributes: {
units: [unit],
desiredUnits: ["auto"],
viewDimensions: {
ids: ["value"],
names: ["value"],
units: [unit],
contexts: ["test.value"]
},
dimensionIds: ["value"],
visibleDimensionIds: ["value"]
}
}),
chart = _makeTestChart.chart;
chart.updateDimensions();
return chart;
};
describe("Comparison StatValue", function () {
it("scales every value independently and renders its unit", function () {
var chart = makeUnitChart("By");
renderWithChart(/*#__PURE__*/_jsxs(_Fragment, {
children: [/*#__PURE__*/_jsx(StatValue, {
value: 1,
valueKey: "avg"
}), /*#__PURE__*/_jsx(StatValue, {
value: 1024,
valueKey: "max"
})]
}), {
chart: chart
});
var values = screen.getAllByTestId("comparison-stat-value");
var units = screen.getAllByTestId("comparison-stat-unit");
expect(values[0]).toHaveTextContent("1B");
expect(values[0]).toHaveStyle("min-width: 0px");
expect(units[0]).toHaveTextContent("B");
expect(values[1]).toHaveTextContent("1KiB");
expect(units[1]).toHaveTextContent("KiB");
});
it("renders integrated rate values without the per-second denominator", function () {
var chart = makeUnitChart("By/s");
renderWithChart(/*#__PURE__*/_jsx(StatValue, {
value: 1048576,
valueKey: "volume"
}), {
chart: chart
});
expect(screen.getByTestId("comparison-stat-value")).toHaveTextContent("1MiB");
expect(screen.getByTestId("comparison-stat-unit")).toHaveTextContent("MiB");
expect(screen.queryByText("MiB/s")).not.toBeInTheDocument();
});
it("normalizes pre-scaled rates before rendering integrated units", function () {
var chart = makeUnitChart("KiB/s");
renderWithChart(/*#__PURE__*/_jsx(StatValue, {
value: 1024,
valueKey: "volume"
}), {
chart: chart
});
expect(screen.getByTestId("comparison-stat-value")).toHaveTextContent("1MiB");
expect(screen.getByTestId("comparison-stat-unit")).toHaveTextContent("MiB");
});
it("preserves scale-only units for integrated operation rates", function () {
var chart = makeUnitChart("requests/s");
renderWithChart(/*#__PURE__*/_jsx(StatValue, {
value: 1000000,
valueKey: "volume"
}), {
chart: chart
});
expect(screen.getByTestId("comparison-stat-value")).toHaveTextContent("1M");
expect(screen.getByTestId("comparison-stat-unit")).toHaveTextContent("M");
});
});