@netdata/charts
Version:
Netdata frontend SDK and chart utilities
84 lines (83 loc) • 2.02 kB
JavaScript
;
var _eventOffset = _interopRequireDefault(require("./eventOffset"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
describe("eventOffset", function () {
var mockElement;
beforeEach(function () {
mockElement = {
getBoundingClientRect: jest.fn(function () {
return {
left: 100,
top: 50,
width: 200,
height: 150
};
})
};
});
it("calculates offset for mouse events", function () {
var event = {
target: mockElement,
clientX: 150,
clientY: 75,
type: "click"
};
var result = (0, _eventOffset["default"])(event);
expect(result).toEqual({
offsetX: 50,
offsetY: 25
});
});
it("calculates offset for touch events with initialTouches", function () {
var event = {
target: mockElement,
type: "touchstart"
};
var ctx = {
initialTouches: [{
pageX: 175,
pageY: 100
}]
};
var result = (0, _eventOffset["default"])(event, ctx);
expect(result).toEqual({
offsetX: 75,
offsetY: 50
});
});
it("handles touch events without initialTouches", function () {
var event = {
target: mockElement,
type: "touchmove"
};
var result = (0, _eventOffset["default"])(event, {});
expect(result).toEqual({
offsetX: NaN,
offsetY: NaN
});
});
it("uses srcElement as fallback for target", function () {
var event = {
srcElement: mockElement,
clientX: 120,
clientY: 60,
type: "mousedown"
};
var result = (0, _eventOffset["default"])(event);
expect(result).toEqual({
offsetX: 20,
offsetY: 10
});
});
it("handles events with no coordinates", function () {
var event = {
target: mockElement,
type: "click"
};
var result = (0, _eventOffset["default"])(event);
expect(result).toEqual({
offsetX: NaN,
offsetY: NaN
});
});
});