UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

146 lines 4.88 kB
import React from "react"; import { screen } from "@testing-library/react"; import "@testing-library/jest-dom"; import { renderWithChart, makeTestChart } from "@jest/testUtilities"; import { NumberChart, Value, Unit } from "./index"; import { jsx as _jsx } from "react/jsx-runtime"; describe("NumberChart", function () { it("renders chart container with value and unit", function () { renderWithChart(/*#__PURE__*/_jsx(NumberChart, {})); expect(screen.getByTestId("chartContent")).toBeInTheDocument(); }); it("renders with chartWrapper styling", function () { renderWithChart(/*#__PURE__*/_jsx(NumberChart, {})); var container = screen.getByTestId("chartContent").parentElement; expect(container).toBeInTheDocument(); }); it("passes additional props to container", function () { renderWithChart(/*#__PURE__*/_jsx(NumberChart, { "data-custom": "value" })); var container = screen.getByTestId("chartContent"); expect(container).toHaveAttribute("data-custom", "value"); }); it("applies correct layout styling", function () { renderWithChart(/*#__PURE__*/_jsx(NumberChart, {})); var container = screen.getByTestId("chartContent"); expect(container).toHaveStyle({ alignItems: "center", justifyContent: "center", position: "relative" }); }); }); describe("Value component", function () { it("renders latest converted value", function () { renderWithChart(/*#__PURE__*/_jsx(Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [42.5], selectedDimensions: ["cpu"], unitsConversionMethod: ["original"], unitsConversionDivider: [1], unitsConversionFractionDigits: [2] } }); expect(screen.getByText("-")).toBeInTheDocument(); }); it("formats value based on conversion settings", function () { renderWithChart(/*#__PURE__*/_jsx(Value, {}), { attributes: { dimensionIds: ["memory"], latestValues: [1024], selectedDimensions: ["memory"], unitsConversionMethod: ["divide"], unitsConversionDivider: [1024], unitsConversionFractionDigits: [2] } }); expect(screen.getByText("-")).toBeInTheDocument(); }); it("handles missing values gracefully", function () { renderWithChart(/*#__PURE__*/_jsx(Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [], selectedDimensions: ["cpu"] } }); expect(screen.getByText("-")).toBeInTheDocument(); }); it("responds to dimension size changes", function () { var _renderWithChart = renderWithChart(/*#__PURE__*/_jsx(Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [42], selectedDimensions: ["cpu"] } }), chart = _renderWithChart.chart; chart.trigger("resize", { width: 400, height: 300 }); expect(screen.getByText("-")).toBeInTheDocument(); }); }); describe("Unit component", function () { it("renders unit sign when available", function () { renderWithChart(/*#__PURE__*/_jsx(Unit, {}), { attributes: { dimensionIds: ["cpu"], units: ["%"], unitsCurrent: ["%"], unitsConversionBase: ["%"], unitsConversionPrefix: [""] } }); expect(screen.getByText("%")).toBeInTheDocument(); }); it("renders nothing when unit is empty", function () { var _renderWithChart2 = renderWithChart(/*#__PURE__*/_jsx(Unit, {}), { attributes: { dimensionIds: ["cpu"], units: [""], unitsCurrent: "", unitsConversionBase: [""], unitsConversionPrefix: [""] } }), container = _renderWithChart2.container; expect(container.firstChild).toBeNull(); }); it("shows unit with prefix when converted", function () { renderWithChart(/*#__PURE__*/_jsx(Unit, {}), { attributes: { dimensionIds: ["memory"], units: ["By"], unitsCurrent: "By", unitsConversionBase: ["B"], unitsConversionPrefix: ["Ki"] } }); expect(screen.getByText(/Ki.*B/)).toBeInTheDocument(); }); it("uses first dimension for unit determination", function () { renderWithChart(/*#__PURE__*/_jsx(Unit, {}), { attributes: { dimensionIds: ["cpu", "memory"], units: ["%"], unitsCurrent: ["%"], unitsConversionBase: ["%", "B"], unitsConversionPrefix: ["", "Ki"] } }); expect(screen.getByText("%")).toBeInTheDocument(); }); it("handles no dimensions gracefully", function () { var _renderWithChart3 = renderWithChart(/*#__PURE__*/_jsx(Unit, {}), { attributes: { dimensionIds: [] } }), container = _renderWithChart3.container; expect(container.firstChild).toBeNull(); }); });