UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

81 lines (80 loc) 2.67 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _client = require("react-dom/client"); var _mount = _interopRequireDefault(require("./mount")); var _line = _interopRequireDefault(require("./components/line")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } jest.mock("react-dom/client"); jest.mock("./components/line"); describe("mount", function () { var mockRoot; var mockChart; var mockElement; beforeEach(function () { mockRoot = { render: jest.fn() }; _client.createRoot.mockReturnValue(mockRoot); mockChart = { getId: jest.fn(function () { return "test-chart-id"; }), getAttribute: jest.fn() }; mockElement = document.createElement("div"); _line["default"].mockReturnValue(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { children: "Mocked Line Component" })); }); afterEach(function () { jest.clearAllMocks(); }); it("creates React root with provided element", function () { (0, _mount["default"])(mockChart, mockElement); expect(_client.createRoot).toHaveBeenCalledWith(mockElement); }); it("renders Line component with chart prop wrapped in ThemeProvider", function () { (0, _mount["default"])(mockChart, mockElement); expect(mockRoot.render).toHaveBeenCalledWith(expect.objectContaining({ type: expect.any(Function), props: expect.objectContaining({ theme: expect.any(Object), children: expect.objectContaining({ type: _line["default"], props: { chart: mockChart } }) }) })); }); it("uses DefaultTheme from netdata-ui", function () { (0, _mount["default"])(mockChart, mockElement); var renderCall = mockRoot.render.mock.calls[0][0]; expect(renderCall.props.theme).toBeDefined(); }); it("handles different chart instances", function () { var anotherChart = { getId: jest.fn(function () { return "another-chart"; }), getAttribute: jest.fn() }; (0, _mount["default"])(anotherChart, mockElement); expect(mockRoot.render).toHaveBeenCalledWith(expect.objectContaining({ props: expect.objectContaining({ children: expect.objectContaining({ props: { chart: anotherChart } }) }) })); }); it("handles different DOM elements", function () { var anotherElement = document.createElement("section"); (0, _mount["default"])(mockChart, anotherElement); expect(_client.createRoot).toHaveBeenCalledWith(anotherElement); }); });