UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

81 lines 1.8 kB
import eventOffset from "./eventOffset"; 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 = eventOffset(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 = eventOffset(event, ctx); expect(result).toEqual({ offsetX: 75, offsetY: 50 }); }); it("handles touch events without initialTouches", function () { var event = { target: mockElement, type: "touchmove" }; var result = eventOffset(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 = eventOffset(event); expect(result).toEqual({ offsetX: 20, offsetY: 10 }); }); it("handles events with no coordinates", function () { var event = { target: mockElement, type: "click" }; var result = eventOffset(event); expect(result).toEqual({ offsetX: NaN, offsetY: NaN }); }); });