@netdata/charts
Version:
Netdata frontend SDK and chart utilities
149 lines (148 loc) • 5.63 kB
JavaScript
;
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();
});
});