UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

85 lines (84 loc) 3.4 kB
"use strict"; 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"); }); });