@netdata/charts
Version:
Netdata frontend SDK and chart utilities
82 lines • 2.12 kB
JavaScript
import React from "react";
import { renderWithChart } from "@jest/testUtilities";
import proceeded from "./proceeded";
import { jsx as _jsx } from "react/jsx-runtime";
var mockDygraph = {
xAxisRange: function xAxisRange() {
return [1000000, 2000000];
}
};
jest.mock("./helpers", function () {
return {
trigger: jest.fn(),
getArea: jest.fn(function () {
return {
from: 50,
width: 100
};
})
};
});
describe("proceeded overlay", function () {
var chartUI;
beforeEach(function () {
var _renderWithChart = renderWithChart(/*#__PURE__*/_jsx("div", {}), {
chartType: "line",
attributes: {
outOfLimits: false,
error: false
}
}),
chart = _renderWithChart.chart;
chart.getFirstEntry = jest.fn(function () {
return 1500;
});
chartUI = {
chart: chart,
getDygraph: function getDygraph() {
return mockDygraph;
}
};
jest.clearAllMocks();
});
it("calculates time range correctly", function () {
proceeded(chartUI, "test-proceeded");
expect(chartUI.chart.getFirstEntry).toHaveBeenCalled();
});
it("handles outOfLimits state", function () {
chartUI.chart.getAttribute = jest.fn(function () {
return {
outOfLimits: true,
error: false
};
});
expect(function () {
return proceeded(chartUI, "test-proceeded");
}).not.toThrow();
});
it("handles error state", function () {
chartUI.chart.getAttribute = jest.fn(function () {
return {
outOfLimits: false,
error: true
};
});
expect(function () {
return proceeded(chartUI, "test-proceeded");
}).not.toThrow();
});
it("returns early when conditions not met", function () {
chartUI.chart.getFirstEntry = jest.fn(function () {
return null;
});
chartUI.chart.getAttribute = jest.fn(function () {
return {
outOfLimits: false,
error: false
};
});
proceeded(chartUI, "test-proceeded");
expect(chartUI.chart.getFirstEntry).toHaveBeenCalled();
});
});