UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

84 lines (83 loc) 2.49 kB
"use strict"; var _react = _interopRequireDefault(require("react")); var _testUtilities = require("@jest/testUtilities"); var _highlight = _interopRequireDefault(require("./highlight")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } var mockDygraph = { getArea: function getArea() { return { h: 100 }; }, hidden_ctx_: { save: jest.fn(), beginPath: jest.fn(), rect: jest.fn(), fill: jest.fn(), setLineDash: jest.fn(), stroke: jest.fn(), closePath: jest.fn(), restore: jest.fn(), fillStyle: "", lineWidth: 0, strokeStyle: "" } }; jest.mock("./helpers", function () { return { trigger: jest.fn(), getArea: jest.fn(function () { return { from: 50, width: 100 }; }) }; }); describe("highlight overlay", function () { var chartUI; beforeEach(function () { var _renderWithChart = (0, _testUtilities.renderWithChart)(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {}), { chartType: "line" }), chart = _renderWithChart.chart; chart.getAttribute = function () { return { "test-highlight": { range: [1000, 2000] } }; }; chartUI = { chart: chart, getDygraph: function getDygraph() { return mockDygraph; } }; jest.clearAllMocks(); }); it("renders highlight overlay when range is provided", function () { (0, _highlight["default"])(chartUI, "test-highlight"); expect(mockDygraph.hidden_ctx_.save).toHaveBeenCalled(); expect(mockDygraph.hidden_ctx_.beginPath).toHaveBeenCalled(); expect(mockDygraph.hidden_ctx_.rect).toHaveBeenCalled(); expect(mockDygraph.hidden_ctx_.fill).toHaveBeenCalled(); expect(mockDygraph.hidden_ctx_.restore).toHaveBeenCalled(); }); it("applies correct styling", function () { (0, _highlight["default"])(chartUI, "test-highlight"); expect(mockDygraph.hidden_ctx_.fillStyle).toBe("rgba(207, 213, 218, 0.12)"); expect(mockDygraph.hidden_ctx_.lineWidth).toBe(1); expect(mockDygraph.hidden_ctx_.strokeStyle).toBe("#CFD5DA"); }); it("handles missing range gracefully", function () { chartUI.chart.getAttribute = function () { return { "test-highlight": {} }; }; (0, _highlight["default"])(chartUI, "test-highlight"); expect(mockDygraph.hidden_ctx_.save).not.toHaveBeenCalled(); }); });