UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

91 lines (90 loc) 4.45 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 _useHeadlessChart3 = _interopRequireDefault(require("./useHeadlessChart")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } var TestComponent = function TestComponent() { var _useHeadlessChart = (0, _useHeadlessChart3["default"])(), chart = _useHeadlessChart.chart, data = _useHeadlessChart.data, dimensionIds = _useHeadlessChart.dimensionIds, helpers = _useHeadlessChart.helpers, state = _useHeadlessChart.state; return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "chart-id", children: chart.getId() }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "data-length", children: data.length }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "dimension-ids", children: dimensionIds.length }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "helpers", children: typeof helpers.getDimensionIds === "function" ? "has helpers" : "no helpers" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "state-loading", children: state.loading ? "loading" : "not loading" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "state-empty", children: state.empty ? "empty" : "not empty" })] }); }; describe("useHeadlessChart", function () { it("provides chart instance", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestComponent, {})); expect(_react2.screen.getByTestId("chart-id")).toHaveTextContent(/^[a-f0-9-]+$/); }); it("provides data array", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestComponent, {})); expect(_react2.screen.getByTestId("data-length")).toHaveTextContent(/^\d+$/); }); it("provides dimension ids", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestComponent, {})); expect(_react2.screen.getByTestId("dimension-ids")).toHaveTextContent(/^\d+$/); }); it("provides helper functions", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestComponent, {})); expect(_react2.screen.getByTestId("helpers")).toHaveTextContent("has helpers"); }); it("provides state object", function () { (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestComponent, {})); expect(_react2.screen.getByTestId("state-loading")).toHaveTextContent(/^(loading|not loading)$/); expect(_react2.screen.getByTestId("state-empty")).toHaveTextContent(/^(empty|not empty)$/); }); it("returns processed data with formatted values", function () { var _makeTestChart = (0, _testUtilities.makeTestChart)({ payload: { data: [[1000, 10, 20], [2000, 15, 25]] } }), chart = _makeTestChart.chart; var TestDataComponent = function TestDataComponent() { var _data$, _data$2; var _useHeadlessChart2 = (0, _useHeadlessChart3["default"])(), data = _useHeadlessChart2.data; return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "data-available", children: data.length > 0 ? "has data" : "no data" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "first-timestamp", children: ((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.timestamp) || "no timestamp" }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": "dimensions-count", children: ((_data$2 = data[0]) === null || _data$2 === void 0 || (_data$2 = _data$2.dimensions) === null || _data$2 === void 0 ? void 0 : _data$2.length) || 0 })] }); }; (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)(TestDataComponent, {}), { chart: chart }); expect(_react2.screen.getByTestId("data-available")).toHaveTextContent(/^(has data|no data)$/); expect(_react2.screen.getByTestId("dimensions-count")).toHaveTextContent(/^\d+$/); }); });