UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

82 lines 2.95 kB
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"); }); });