UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

84 lines (83 loc) 2.02 kB
"use strict"; 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 }); }); });