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