UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

149 lines (148 loc) 5.63 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 _index = require("./index"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } describe("NumberChart", function () { it("renders chart container with value and unit", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.NumberChart, {})); expect(_react2.screen.getByTestId("chartContent")).toBeInTheDocument(); }); it("renders with chartWrapper styling", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.NumberChart, {})); var container = _react2.screen.getByTestId("chartContent").parentElement; expect(container).toBeInTheDocument(); }); it("passes additional props to container", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.NumberChart, { "data-custom": "value" })); var container = _react2.screen.getByTestId("chartContent"); expect(container).toHaveAttribute("data-custom", "value"); }); it("applies correct layout styling", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.NumberChart, {})); var container = _react2.screen.getByTestId("chartContent"); expect(container).toHaveStyle({ alignItems: "center", justifyContent: "center", position: "relative" }); }); }); describe("Value component", function () { it("renders latest converted value", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [42.5], selectedDimensions: ["cpu"], unitsConversionMethod: ["original"], unitsConversionDivider: [1], unitsConversionFractionDigits: [2] } }); expect(_react2.screen.getByText("-")).toBeInTheDocument(); }); it("formats value based on conversion settings", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Value, {}), { attributes: { dimensionIds: ["memory"], latestValues: [1024], selectedDimensions: ["memory"], unitsConversionMethod: ["divide"], unitsConversionDivider: [1024], unitsConversionFractionDigits: [2] } }); expect(_react2.screen.getByText("-")).toBeInTheDocument(); }); it("handles missing values gracefully", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [], selectedDimensions: ["cpu"] } }); expect(_react2.screen.getByText("-")).toBeInTheDocument(); }); it("responds to dimension size changes", function () { var _renderWithChart = (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Value, {}), { attributes: { dimensionIds: ["cpu"], latestValues: [42], selectedDimensions: ["cpu"] } }), chart = _renderWithChart.chart; chart.trigger("resize", { width: 400, height: 300 }); expect(_react2.screen.getByText("-")).toBeInTheDocument(); }); }); describe("Unit component", function () { it("renders unit sign when available", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Unit, {}), { attributes: { dimensionIds: ["cpu"], units: ["%"], unitsCurrent: ["%"], unitsConversionBase: ["%"], unitsConversionPrefix: [""] } }); expect(_react2.screen.getByText("%")).toBeInTheDocument(); }); it("renders nothing when unit is empty", function () { var _renderWithChart2 = (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Unit, {}), { attributes: { dimensionIds: ["cpu"], units: [""], unitsCurrent: "", unitsConversionBase: [""], unitsConversionPrefix: [""] } }), container = _renderWithChart2.container; expect(container.firstChild).toBeNull(); }); it("shows unit with prefix when converted", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Unit, {}), { attributes: { dimensionIds: ["memory"], units: ["By"], unitsCurrent: "By", unitsConversionBase: ["B"], unitsConversionPrefix: ["Ki"] } }); expect(_react2.screen.getByText(/Ki.*B/)).toBeInTheDocument(); }); it("uses first dimension for unit determination", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Unit, {}), { attributes: { dimensionIds: ["cpu", "memory"], units: ["%"], unitsCurrent: ["%"], unitsConversionBase: ["%", "B"], unitsConversionPrefix: ["", "Ki"] } }); expect(_react2.screen.getByText("%")).toBeInTheDocument(); }); it("handles no dimensions gracefully", function () { var _renderWithChart3 = (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Unit, {}), { attributes: { dimensionIds: [] } }), container = _renderWithChart3.container; expect(container.firstChild).toBeNull(); }); });