@netdata/charts
Version:
Netdata frontend SDK and chart utilities
85 lines (84 loc) • 3.4 kB
JavaScript
;
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@testing-library/react");
require("@testing-library/jest-dom");
var _testUtilities = require("@jest/testUtilities");
var _statValue = _interopRequireDefault(require("./statValue"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var makeUnitChart = function makeUnitChart(unit) {
var _makeTestChart = (0, _testUtilities.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");
(0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_statValue["default"], {
value: 1,
valueKey: "avg"
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_statValue["default"], {
value: 1024,
valueKey: "max"
})]
}), {
chart: chart
});
var values = _react2.screen.getAllByTestId("comparison-stat-value");
var units = _react2.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");
(0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_statValue["default"], {
value: 1048576,
valueKey: "volume"
}), {
chart: chart
});
expect(_react2.screen.getByTestId("comparison-stat-value")).toHaveTextContent("1MiB");
expect(_react2.screen.getByTestId("comparison-stat-unit")).toHaveTextContent("MiB");
expect(_react2.screen.queryByText("MiB/s")).not.toBeInTheDocument();
});
it("normalizes pre-scaled rates before rendering integrated units", function () {
var chart = makeUnitChart("KiB/s");
(0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_statValue["default"], {
value: 1024,
valueKey: "volume"
}), {
chart: chart
});
expect(_react2.screen.getByTestId("comparison-stat-value")).toHaveTextContent("1MiB");
expect(_react2.screen.getByTestId("comparison-stat-unit")).toHaveTextContent("MiB");
});
it("preserves scale-only units for integrated operation rates", function () {
var chart = makeUnitChart("requests/s");
(0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_statValue["default"], {
value: 1000000,
valueKey: "volume"
}), {
chart: chart
});
expect(_react2.screen.getByTestId("comparison-stat-value")).toHaveTextContent("1M");
expect(_react2.screen.getByTestId("comparison-stat-unit")).toHaveTextContent("M");
});
});