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